BE개발자 주니어 적응기 137

[SPRING] Interceptor의 의미와 구현 및 실습

1. 인터셉터 컨트롤러의 '핸들러'를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터를 뜻한다. interceptor란 단어는 '낚아채다'라는 의미이다. 해당 단어의 의미와 같이 사용자 요청에 의해 서버에 들어온 Request 객체를 컨트롤러의 핸들러(사용자가 요청한 url에 따라 실행되어야 할 메서드, 이하 핸들러)로 도달하기전에 낚아채서 개발자가 원하는 추가적인 작업을 한 후 핸들러로 보낼 수 있도록 해주는 것이 인터셉터이다. 2. 사용하는 이유 개발자는 특정 Controller의 핸들러가 실행되기 전이나 후에 추가적인 작업을 원할때 Interceptor를 사용한다. (추가적인 작업에는 로그엔체크, 권한 체크 등이 있다.) 권한 체크 예를 통해서 개발자가 인터셉터의 어떠한 이..

개발자/Spring 2023.01.10

[SPRING] 다중 파일 업로드(중첩 커맨드객체)

중첩 커맨드객체란? 커맨드 객체 안에 커맨드 객체가 있는 형식 사용자가 HTTP로 사용자 데이터를 보내올 때 커맨드 객체를 여러 번 중첩시켜서 보낼 수 있다. 이 중첩 커맨드 객체는 VO에 List 형태로 데이터를 받을 수 있다. HTML 파일에서 데이터를 전송할 때 데이터의 name 속성은 아래처럼 커맨드 객체의 속성명과 인덱스 그리고 속성을 명시해야한다. JSP 헤더 부분 ------------------------------------ DTO를 이용한 여러 파일 업로드 빨강 초록 파랑 NAME AGE FILENAME 이미지태그 ${dto.name } ${dto.age } ${dto.fileName } 새로운 개념 1. c:choose java의 switch case와 유사함. when(~~일 경우)..

개발자/Spring 2023.01.04

[SQL_ORACLE]프로그래머스_년, 월, 성별 별 상품 구매 회원 수 구하기_DISTINCT 활용

https://school.programmers.co.kr/learn/courses/30/lessons/131532 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요. 1. USER_INFO 테이블과 ONLINE_SALE 테이블에서 JOIN이 필요하다(JOIN의 기본값은 INNERJOIN이다) 2.년, 월,..

[SQL_ORACLE]프로그래머스_우유와 요거트가 담긴 장바구니_INTERSECT

https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 다른 방법으로 풀 수 있으나, INTERSECT를 이용해 풀어보았다. 먼저, INTERSECT의 사용법부터 정리해 볼 것이다. INTERSECT 오라클에서 서로 다른 쿼리문에서 중복 값이 제거된 교집합 데이터를 조회하기 위해서는 INTERSECT 연산자를 사용하면 된다. 자주 사용하는 UNION ALL과 사용법은 비슷하지만 UNION ALL은 합집합을 반환하는 반면, INTERSECT는..

[SPRING] 도서 CRUD 구현 + 검색기능까지

도서 CRUD를 간략하게 스프링을 통해 구현해보았다. 1. 전체적인 구성 2. CRUD 구현 전 환경설정 pom.xml(의존성 주입만) java version 1.8 springframework-version : 4.3.30.RELEASE xerces xercesImpl 2.12.2 com.oracle.database.jdbc ojdbc8 21.8.0.0 org.springframework spring-jdbc ${org.springframework-version} org.springframework spring-orm ${org.springframework-version} org.mybatis mybatis-spring 2.1.0 org.mybatis mybatis 3.5.11 com.zaxxer Hi..

개발자/Spring 2022.12.30

[SPRING] CRUD 구현 전 전체적인 구상방법

crud를 구현하기 전 전체적인 틀을 머릿속에 넣을 필요가 있다. 전체적인 틀을 엑셀로 정리해보았다. 어떤 방식으로 요청할 것인지 요청받아서 가공된 데이터를 어떻게 응답시킬 것인지 전체적인 구상을 한 후 구현작업을 한다면 매우 효율적일 것이다. ++ 위 RequsetMappings를 바라보면 전체적인 구상을 확인하며 진행할 수 있다.

개발자/Spring 2022.12.29