본문 바로가기

전체 글85

[RDBMS] 쿼리 작성 순서와 실행 순서의 차이 정말 기본적인 내용이지만 굉장히 중요하고 잘 숙지를 못한다면 제대로 작성했는데 왜 쿼리가 실행이 안될까.. 하며 시간을 소비할 수 있는 내용이다(경험) 쿼리의 작성순서와 실제 실행되는 순서는 다르다. SQL 작성 순서 1. SELECT 컬럼명 2. FROM 테이블 3. WHERE 조건식 4. GROUP BY 컬럼명 5. HAVING 조건 6. ORDER BY 컬럼 정확히 기억이 안나지만 처음 해당 내용에 의문이 생긴건 select count(*) as cnt from user_T where cnt > 1 이런 내용의 쿼리가 실행안될때였는데 지금 생각하면 상당히 웃픈 상황이지만 작성순서대로 쿼리가 실행된다고 생각하고 나는 cnt 라고 별칭을 줬는데 왜 실행이 안될까 했었다. SQL 실행 순서 1. FROM.. 2022. 3. 1.
[WEB] IP, TCP, UDP 프로토콜 특징 IP(인터넷 프로토콜) 지정된 서버(IP Adress)에 네트워크를 통하여 데이터를 전달한다. 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. 패킷에는 출발지IP, 목적지IP, 전송데이터 등이 포함된다. IP 프로토콜의 특징 비연결성 : 패킷을 받을 대상이 존재하지 않거나(정확한 IP가 아닌경우) 서비스 불능 상태여도 패킷전송 비신뢰성 : 데이터 전송중 다양한 이유로 패킷이 소실될 경우 상황을 알 수 없다. - 패킷의 사이즈가 크면 분할되어 전송되는데 분할된 패킷의 순서를 보장하지 않는다. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션(PC에서 인터넷, 게임 등등..)이 둘 이상일때 구분이 불가능 TCP 전송 제어 프로토콜(Transmission Control Protoc.. 2022. 2. 28.
[MYBATIS] No typehandler found for property Mapper파일에 resultMap 추가 후 서버 기동때 에러사항이 발생하였다. IllegalStateException이 발생하였고 No typehandler found for property 메시지가 VO의 특정필드(regDate)와 함께 출력되었다. 검색결과 resultMap의 매핑대상 필드의 데이터타입이 MYBATIS에서 지원하지 않는 데이터타입이라 발생하는 것으로 확인하였다. 대상 자바 파일에서 확인결과 데이터타입 import가 의도대로 수행되지 않음을 확인하였다. java.sql.Timestamp를 import하려 했으나 security의 Timestamp가 import된 상태였다. import수행 시 한 번더 확인하는 습관을 기르자 2022. 2. 27.
[SPRING] HTTP 요청 헤더 다루기 HTTP 요청 헤더에는 상당히 많은 정보가 포함되어 있습니다. 애노테이션을 기반으로 요청헤더를 조회하는 방법들에 대하여 학습한 내용을 정리합니다. 개인적인 학습의 정리글입니다. HTTP 요청 헤더 데이터 조회 HttpMethod: Enum 클래스로 HTTP 요청 메소드를 조회한다. Locale : 클라이언트의 국가언어정보를 조회한다. @RequestHeader : 헤더 정보를 조회할때 사용하는 애노테이션이다. @CookieValue : 쿠키정보를 조회할때 사용하는 애노테이션으로 required, defaultValue 등을 입력할 수 있다. @RequestMapping("/headers") public String headers(HttpServletRequest request , HttpServletRe.. 2022. 2. 23.
[SPRING] 애노테이션 기반의 요청 매핑 서버에 요청이 오면 호출될 컨트롤러 매핑의 다양한 방식에 대한 개인적인 학습의 정리글입니다. URL 기반의 매핑 매핑하려는 URL를 애노테이션에 입력하거나 value 속성에 주입하여 사용한다.(가장 일반적인 방식) @RequestMapping("/border/game") //@RequestMapping(value="/border/game") public String gameBorder() { return "board/gameBoard"; } 위 처럼 매핑했을때 /border/game /border/game/ 두개의 URL 모두 매핑이 실행된다. value 속성도 배열을 제공하므로 다중 설정이 가능하다. ex) {"/hello-basic", "/hello-go"} HTTP 메서드 매핑 컨트롤러의 메소드에 .. 2022. 2. 16.
[SPRING] SLF4j을 사용한 로깅방법 로직 작성 시 로그를 남길 수 있는 간단한 방법을 기록합니다. 스프링부트 로깅 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함된다. 로그라이브러리는 로그를 파일로 생성하거나 특정 메일로 보내주는 등의 다양한 기능을 제공하지만 이 글에선 콘솔에 로그를 출력하는 기능만 정리합니다. 스프링 부트 로깅라이브러리는 기본으로 다음 로깅 라이브러리를 사용합니다. SLF4J LogBack 다양한 로그 라이브러리(LogBack, Log4J, Log4J2)가 있는데 그것을 통합해서 인터페이스로 제공하는 것이 SLF4J 라이브러리이다. SLF4J가 인터페이스가 되고 그 구현체로 LogBack, Log4J2 같은 라이브러리를 선택하여 사용하면된다. 스프링부트는.. 2022. 2. 2.