SQL 6

한빛미디어 '업무에 바로 쓰는 SQL 튜닝'으로 SQL 성능 개선하기

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 오늘 리뷰할 책은 한빛미디어의 신작 '업무에 바로 쓰는 SQL 튜닝'입니다. 개발자로서 SQL을 아는 것은 기본 중의 기본인데, 데이터가 많아지고 테이블이 복잡해질 수록 SQL 쿼리를 효율적으로 잘 짜는게 매우 중요한데요. 그래서 이 책을 읽게 되었습니다. 개인적으로 SQLD(SQL 개발자) 시험을 보느라 인덱스나 SQL 작동 원리 등은 살짝 배웠는데요. 그런 개념들도 알려주고, 개념들을 이용해 효율적인 SQL 쿼리를 짜는 법을 알려줘 참 좋았습니다. SQL쿼리 자체를 수정, 인덱스를 수정, 테이블 및 열 구조를 변경해 착한 쿼리를 만드는 방법도 나와있습니다. 예시로 나와있는 쿼리도 명확하고 간단해 이해하기 참 쉽습니다. 개인적으로 반복해 읽어 ..

Database 2021.07.04

웹 프로그래밍 (front controller 패턴에 resolvers 더하기)

www.notion.so/techsignal/resolver-a0d7c594c3d74a79941a4d6113887490 여러분 그거 아시나요? 웹으로 접속하셔서 링크에 커서를 갖다대면 무슨 일이 일어나는지???!?!?!!? resolver Resolvers: www.notion.so 클릭 클릭! ReqParam 어노테이션을 사용하면 해당 컨트롤러 코드 내에서 req.getParameter()를 할 필요가 없어진다. T 타입 사용하기 상세검색을 하고 싶은데 어떤 타입으로 지정해야할지 모르겠다??? 1. 일단 PagingVO에선 T타입으로 선언해둔다 2. 그 안에 들어갈 변수가 뭐뭐 있는지 봄 3. prod_lgu, prod_buyer, prod_name... ProdVO의 변수들이다?! ->컨트롤러에서 P..

WEB Application 2020.09.23

웹 프로그래밍 (xml 주의할 점, front controller 패턴 )

public int createProd(ProdVO prod); Service에서 리턴타입을 int로 하면 식별성 없음. (dao에선 가공을 못하므로 int로 할 수 밖에 없음) insert, update할 때 null허용일 때는 JDBCType 꼭~! DATE -> jdbcType=DATE CLOB -> jdbcType=VARCHAR NUMBER -> jdbcType=NUMERIC 컨트롤러에서 항상 반복되는 코드들 처음에 req.setCharacterEncoding("UTF-8"); 마지막에 req.getRequestDispatcher(goPage).forward(req, resp); Front Controller 들이 할 일 - 각 커맨드(URI에 연결되어있음)를 처리할 수 있는 백엔드 컨트롤러 목록..

WEB Application 2020.09.22

20/09/18 웹 프로그래밍 (slf4j, 페이징 처리, DataTables)

오늘의 포스팅은 라이브러리 설치 및 응용 위주입니다~! SLF4J (Simple Logging Facade For Java)를 써봅시다 1. 일단 먼저 설치! 2. Pom.xml에 dependency 추가하고 만약 Log4j, SLF4j 2개라면 commons-logging에서는 exclude Maven artifact하기. Log4j, SLF4j 각각 하나씩 해서 리모컨(파사드) 2개 근데 둘 중 하나만 써야됨. 3. log4j2.xml 이라는 이름의 파일을 만들어 SLF4j 설정 - Appender: 어디에 출력할건지 (콘솔인지, 파일 내부인지 등등) 1. 인덱스 필요 2. 통계 필요 => JDBC appender를 사용해 log를 DB에 등록 가능 - Layout: 어떤 포맷? - Logger **..

WEB Application 2020.09.18

SQLD 대비 O/X 퀴즈 문제 및 풀이

1. TRUNCATE TABLE은 테이블 구조는 그대로 유지한 채 데이터만 전부 삭제하는 기능이다. 2. TRUNCATE TABLE을 하면 테이블 자체가 삭제된다. 3. DROP COLUMN 을 사용하면 한번에 여러개의 칼럼 삭제가 가능하다. 4. NULL도 고유키(UNIQUE)제약의 대상이다. 5. 기본키(PRIMARY KEY)를 구성하는 칼럼에는 NULL을 입력할 수 없다. 6. CHECK는 입력할 수 있는 값의 범위를 제한할 수 있다. CHECK로는 TRUE or FALSE 로 평가할 수 있는 논리식을 지정한다. 7. CHAR 타입의 경우 문자열을 비교할 때 공백을 채워서 비교한다. 8. 반정규화란 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스다. 9. ERD의 구성..