일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- java spring
- 리눅스
- AOP
- Ubunt
- 컨테이너
- JDBC TEMPLATE
- spring framework
- java
- unix
- Dependency Injection
- 마이바티스
- JdbcTemplate
- @JUnit
- STS
- Spring JDBC
- @test
- spring
- @AspectJ
- myBatis
- pointcut
- @Spring-Test
- spring aop
- Linux
- SpringJDBC
- Di
- 프로퍼티
- Framework
- POJO
- XML
- Spring Boot
- Today
- Total
목록전체 글 (307)
개키우는개발자 : )
조인이란? 2개 이상의 테이블에 있는 정보 중 사용자가 필요한 집합에 맞게 가상의 테이블 처럼 만들어서 결과를 보여주는 것이다. 종류 설명 INNER 조인 특정 컬럼을 기준으로 정확히 매칭된 집합을 출력한다. OUTER 조인 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값 만을 출력한다. SELF 조인 동일한 테이블 끼리 의 특정 컬럼을 기준으로 매칭되는 집합을 출력한다. FULL OUTER 조인 INNER, LEFT OUTER, RIGHT OUTER 조인 집합을 모두 출력한다. CROSS 조인 Cartesian Product라고도 하며 조인되는 두 테이블에서 곱집합을 반환한다. NATURAL 조인 특정 테이블의 같은 이름을 가진 컬럼 간..

문제 고객에게 단체 이메일을 전송 하고자 한다. CUSTOMER 테이블에서 고객의 EMAIL 주소를 추출하고, 이메일 형식에 맞지 않는 이메일 주소는 제외시켜라. ( '@'가 존재해야 하고 '@'로 시작하지 말아야 하고 '@'로 끝나지 말아야 한다.) 1. @로 시작하지 않기 select email from customer where email not like '@%' 2. @로 끝나지 않기 select email from customer where email not like '@%' and email not like '%@' 3. @를 포함하기 select email from customer where email not like '@%' and email not like '%@' and email li..

문제 - PAYMENT 테이블에서 단일 거래의 AMOUNT의 액수가 가장 많은 고객들의 CUSTOMER_ID를 추출해라. 단 CUSTOMER_ID의 값은 유일해야 한다. 1. 가장큰 금액을 먼저 찾는다. 테이블의 데이터를 DESC 내림차순으로 정렬한 후 1개의 데이터만 출력하면 나중에 11.99 보다 큰 금액의 데이터가 들어오더라도 가장 큰금액을 항상 반환한다. select amount from payment order by amount desc limit 1; 2. 서브쿼리를 이용하여 WHERE 조건 필터링 하기 payment테이블의 amount 값이 가장많은 ( 11.99 (최대금액을 계속 반환하는) )값 을 조회한다. select* from payment where amount = ( select ..

NULL연산자 문법 기본문법 특정 컬럼의 값이 IS NULL인지 NOT NULL인지 판단하는 연산자 column_name 값이 null인 데이터 조회 select * from table_name where column_name is null; column_name 값이 null이 아닌 데이터 조회 select * from table_name where column_name is not null; 실습준비 CONTACTS 테이블 만들기 create table CONTACTS( ID INT generated by default as identity, FIRST_NAME VARCHAR(50) not null, LAST_NAME VARCHAR(50) not null, EMAIL VARCHAR(255) not n..

LIKE 문법 집합에서 어떠한 컬럼의 값이 특정 값과 유사한 패턴을 갖는 집합을 출력하는 연산자 기본문법 특정 패턴과 유사한 값을 조회 select * fromt table_name where column_name like 특정패턴 특정 패턴과 유사하지 않은 집합 select * fromt table_name where column_name not like 특정패턴 '%' 는 문자 혹은 문자열이 매칭 되었다고 판단한다. '_'는 한개의 문자이든지 매칭 되었다고 판단한다. 실습 - CUSTOMER 테이블의 FIRST_NAME이 Jen으로 시작하는 데이터를 조회 select first_name, last_name from customer where first_name like 'Jen%' - LIKE 패턴을..

BETWEEN 연산자 문법 특정 범위안에 들어가는 집합을 출력하는 연산자. 기본문법 COLUMN_NAME 값이 VALUE_A 와 VALUE_B 사이에 있는 값을 조회 SELECT * FROM TABLE_NAME WHERE COLUMN_NAME BETWEEN VALUE_A AND VALUE_B; -- BETWEEN연산자를 사용하지 않으면 아래와 같다. COLUMN_NAME >= VALUE_A AND COLUMN_NAME VALUE_B 실습 - AMOUNT가 8부터 9사이의 값을 조회 select customer_id, payment_id, amount from payment where amount between 8 and 9; 다른 방법 select customer_id, payment_id, amount..

IN연산자 문법 특정 집합(컬럼 혹은 리스트)에서 특정 집합 혹은 리스트가 존재하는지 판단하는 연산자입니다. 기본 문법 column_name이 가지고 있는 집합에서 value1,2 등의 값이 존재하는지 확인합니다. select * from table_name where column_name in(value1,value2,...) column_name이 가지고 있는 집합에서 table_name2 테이블의 column_name2의 집합이 존재하는지 확인합니다. select * from table_name where column_name in (select column_name2 from table_name2); 실습 - IN연산자를 사용하여 rental 테이블의 customer_id 가 1 또는 2 인 값을..

FETCH 문법 LIMIT와 마찬가지로 조회한 결과의 개수를 제한하는 역할을 하며. 부분 범위 처리시 사용합니다. 기본문법 출력하는 행의 수를 지정하며 N을 입력하지 않고 ROW ONLY만 입력하면 1개의 데이터만 조회 합니다. SELECT * FROM TABLE_NAME FETCH FIRST [N] ROW ONLY 출력하는 행의 범위를 지정합니다. SELECT * FROM TABLE_NAME OFFSET N ROWS FETCH FIRST [N] ROW ONLY 실습 - film 테이블의 1건의 데이터를 title컬럼 기준으로 조회합니다. select film_id, title from film order by title fetch first row only; - film 테이블의 20건의 데이터를 ti..

LIMIT 문법 LIMIT는 조회한 결과 값의 행의 수를 제한, 한정하는 역할을 합니다. 결과의 범위를 처리할 때 사용합니다. 기본 문법 출력하는 행의 수를 지정한다 SELECT * FROM TABLE_NAME LIMIT N 출력하는 행의 범위를 지정한다. SELECT * FROM TABLE_NAME LIMIT N OFFSET M 실습 - film 테이블 데이터중 5개의 결과 값만 조회하며 film_id로 정렬을 한다. select film_id, title, release_year from film order by film_id limit 5; - film 테이블 데이터중 4개의 결과 값을 film_id로 정렬하여 조회하며 첫번째 데이터는 4번째 행부터 시작을 한다. select film_id, tit..

WHERE 절 문법 집합을 가져올 때 어떤 집합을 가져올 것인지에 대한 조건을 설정할 때 사용하는 WHERE절 입니다. 기본 문법 SELECT COLUMN_1, COLUMN_2 FROM TABLE_NAME WHERE 조건 연산자 연산자 설명 = 같음 > ~보다 큰 = ~보다 크거나 같은

DISTINCT 문법 SELECT 시 DISTINCT를 사용하면 중복 값을 제외한 결과 값이 출력됩니다. 즉 같은 결과의 행이라면 중복을 제거할 수 있습니다. COLUMN_1의 값이 중복 값 존재 시 중복 값을 제거 SELECT DISTINCT COLUMN_1 FROM TABLE_NAME; COLUMN_1 + COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거 SELECT DISTINCT COLUMN_1 , COLUMN_2 FROM TABLE_NAME; COLUMN_1 + COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거 , 결과를 명확하게 하기 위해 ORDER BY절 사용 SELECT DISTINCT COLUMN_1 ,COLUMN_2 FROM TABLE_NAME ORDER BY COLUMN..

ORDER BY 문법 기본 문법 ORDER BY 는 SELECT 문에서 가져온 데이터를 정렬하는데 사용합니다. 기본본적으로 데이터를 가져오면 오름차순(ASC)정렬 이며 밑의 문법에선 COLUMN_1 오름차순(ASC) 정렬 COLUMN_2 내림차순(DESC) 정렬 SELECT COLUMN_1, COLUMN_2, ... FROM TABLE_NAME ORDER BY COLUMN_1 ASC, COLUMN_2 DESC; ASC 정렬 (ASC 생략가능) SELECT FIRST_NAME, LAST_NAME FROM CUSTOMER ORDER BY FIRST_NAME ASC; ------------------------------ SELECT FIRST_NAME, LAST_NAME FROM CUSTOMER ORDER ..

SELECT 문법 - 특정 테이블의 모든 데이터 조회 추출하고 싶은 컬럼의 명, 모든 컬럼을 보고싶으면 * 를 입력하고 FROM절 뒤에 TABLE명을 입력하면 해당 TABLE의 데이트를 추출할 수 있습니다. 코드를 작성후 Ctrl + Enter 를 누르면 조회가 됩니다. SELECT COLUMN_1 ,COLUMN_2 ,... FROM TABLE_NAME; CUSTOMER TABLE 조회하기 SELECT * FROM CUSTOMER; 모든 데이터를 불러옵니다. DBeaver 기능중에 정보를 볼 수 있는 방법이 있는데 해당 코드를 마우스드래그로 블럭한 후 Ctrl+Shift+E 를 누르면 아래와 같이 정보가 조회 됩니다. CUSTOMER TABLE을 펼치면 테이블의 속성들이 보여지며 조회된 개수,시간 등등 ..

1. 데이터베이스 Tool 설치하기 https://dbeaver.io/download/ Download | DBeaver Community Download Tested and verified for MS Windows 7/8/10, Linux and Mac OS X. DBeaver requires Java 1.8 or higher. Windows and MacOS installers include OpenJDK 11 bundle. If you are on Mac OS X and you do NOT use PKG installer then you will need to setup Java. N dbeaver.io 1. 사이트를 방문하여 OS에 맞게 다운로드 받습니다. 2. 언어를 선택합니다. 3. 일반적인..

1. 파일 다운로드 2. pgAdmin4 실행 3. 데이터베이스 생성하기 4. dvdrental 데이터베이스 이름을 입력합니다. 5. 생성된 데이터베이스 우클릭 -> Restore 6. ... 버튼을 눌러 파일을 선택합니다. 7. Format -> All Files -> C:TEMP 경로안에 dvdtental.tar 선택 8. Restore 클릭 9. 테이블을 열어보면 각테이블들이 나열되어 보여집니다. 샘플 DB를 활용하여 실습을 하기때문에 저장하시면 좋을것 같아요~

1. pgAdmin4 실행 2. 비밀번호를 입력후 접속 만약 접속이 안되면 server 클릭 -> PostgreSQL 12 우클릭 -> Connect Server 누른후 설치할 때 설정한 비밀번호 입력 3 . 접속을 하시면 Sever Dashboard와 PostgreSQL 구조가 보입니다. 크게 databases , Roles , Tablespaces 3개의 구조로 되어있으며 Data는 Table에 담기며 Table은 Tablespaces 에 저장됩니다. 접속하면 기본 테이블로는 postgres 테이블이 생성되어 있습니다. 4. postgres 테이블 우클릭 -> Query Tool을 입력하면 Query문을 입력할 수 있는 입력 창이 나옵니다. 5. 잘 작성되는지 테스트 해보기. 현재 시간을 보여주는 S..

PostgreSQL은 오픈 소스 데이터 베이스 입니다. 랭킹보기 : https://db-engines.com/en/ranking 2019년도 랭킹을 보면 매우 높은 점유율을 가지고 있는 RDBM중 하나입니다. 개요 - PostgreSQL은 관계형 데이터베이스 시스템의 일종입니다. - 가장 진보한 오픈소스 데이터베이스 시스템이라고 할 수 있으며 - Unix/Linux, MAC OS, Soraris, Windows 등의 OS를 지원합니다. - PostgreSQL 은 완전 무료 소프트웨어입니다. 특징 - multi-version concurrency control (MVCC) 의 완벽한 지원 - C/C++,Java등의 프로그래밍 언어 연동을 완벽 지원 - 확장성에 매우 좋음(Data Types,Index Ty..

PostgreSQL 설치 하기 링크 : https://www.postgresql.org/download/windows/ PostgreSQL: Windows installers Windows installers Interactive installer by EnterpriseDB Download the installer certified by EnterpriseDB for all supported PostgreSQL versions. This installer includes the PostgreSQL server, pgAdmin; a graphical tool for managing and developing your datab www.postgresql.org 1. 페이지 접속 후 Download the..
5월 20일 날 자바 스프링 기반의 웹 에이전시에 취직 후 7월까지 다니고 몸과 마음이 지쳐 2달 다니고 이직을 했네요 늦게 시작한 만큼 욕심이 많았던지라 자기계발 안하면 망하겠다 생각했는데 정말 망할 것 같아 아는 형의 도움으로 야근이 없고 자사 서비스를 개발하는 PHP 5.3 버전 기반의 백앤드 개발자로 취업을 했고 지금까지 잘 다니고 있습니다. ㅋㅋㅋㅋ 쓰고싶은 말은 많지만 역시 글을 쓴다는건 어렵네요. 좀더 경험이 쌓이고 정신이 맑을때 이런저런 글 쓰러 오겠습니다.ㅋ!
흩어져 있는 state 들을 하나로 모아서 컴포넌트 마다 필요한 state를 던저 주면 프로그램 개발과 관리에 효율이 좋습니다. state 들을 중앙에서 관리해주는 리덕스 라이브러리를 간단하게 소개 합니다.. { isLoggedIn : false, // 로그인 여부 -> A,C user : {}, // 로그인한 사용자 -> b,c mainPosts: [], //메인 게시글들 -> c ... } -> store 하나의 state 를 A에 보낼수도 있고 C 에도 보낼수 있습니다. Redux 는 state 의 역할을 합니다. 그래서 Redux를 쓰면 React의 state를 쓰지 않아도 됩니다. 하지만 대부분 두가지를 같이 씁니다. Redux의 state는 복잡할때 사용을 하고 React의 state는 간단할..
컴포넌트를 분리하면 여러가지 장점이있다. 캡슐화 , 확장성 , 결합성 , 재사용성 , 가독성 등등.. 여러가지 장점이 있기때문에 컴포넌트를 분리를 해줍니다. 반복문 , 조건문 , 폼 안의 엘리먼트 들을 분리해주었습니다. components 폴더 안에 js 파일을 생성합니다. NicknameEditForm.js import React from 'react'; import { Form, Button ,Input} from 'antd'; const NicknameEditForm = () => { return ( 수정 ); } export default NicknameEditForm; PostCard.js import React from 'react'; import {Button, Card , Icon , Av..

프로필 화면을 만들어 보겠습니다. profile.js import React from 'react'; import { Form, Button , List , Input, Card , Icon} from 'antd'; const Profile = () =>{ return ( 수정 ( )} /> ( )} /> ); }; export default Profile; 배열안에 jsx를 쓸땐 key 가 꼭 필요합니다. 파일들 안에 if문 또는 반복문 사이의 코드들은 나중에 최적화를 위해 모두 컴포넌트화 시키겠습니다. 출처 : https://www.youtube.com/channel/UCp-vBtwvBmDiGqjvLjChaJw ZeroCho TV 조현영(zerocho)의 JS 프로그래밍 강좌 시간 나는대로 저녁 10..

메인 화면 에 작성 글 영역 꾸며주기 index.js import React from 'react'; import { Form , Input , Button, Card , Icon , Avatar} from 'antd'; const dummy = { isLoggedIn : true, imagePaths: [], mainPosts : [{ User : { id : 1, nickname : "Dogveloper", }, content : "첫번째 게시글", img : 'https://source.unsplash.com/random', }], } const Home = () =>{ return ( {dummy.isLoggedIn && 이미지 업로드 짹짹 {dummy.imagePaths.map((v,i) =>{..

로그인 폼 만들기 dummy 데이터의 isLoggedIn : true 이면 로그인 상태 false 이면 로그아웃 상태를 삼항 연산자로 비교를 하였습니다. import React from 'react'; import Link from 'next/link'; import {Menu, Input , Button, Row , Col , Card , Avatar , Form} from 'antd'; import PropTypes from 'prop-types'; const dummy = { nickname : 'Dogveloper', Post : [], Followings : [], Followers : [], isLoggedIn : true, }; const AppLayout = ({children}) =>{ ..

antd 를 사용하여 화면의 디자인을 구성합니다. https://ant.design/components/grid/ Ant Design - A UI Design Language Use row-flex define flex layout, its child elements depending on the value of the start,center, end,space-between, space-around, which are defined in its parent node layout mode. ant.design antd는 반응형 을 기본적으로 제공합니다. 가로 너비 기준 xs : 모바일 sm : 태플릿 md : 노트북 lg : 데스크탑 각각 px이 정해져있습니다. 로그인 했을때 어떻게 보여지는지 dummy..