전체 글 (71) 썸네일형 리스트형 HTTP 요청 - 기본, header 조회 애노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 지원한다. 이번 시간에는 HTTP 헤더 정보를 조회하는 방법을 알아보자. import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpMethod; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale; - import 되는 부분 @Slf4j @RestControl.. 요청 매핑 - 연습 회원 관리를 HTTP API로 만든다 생각하고 매핑을 어떻게 하는지 알아보자. (실제 데이터가 넘어가는 부분은 생략하고 URL 매핑만) 회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} @RestController @RequestMapping("/mapping/users") public class MappingTestController { private final Logger log= LoggerFactory.getLogger(getClass()); @GetMapping public String user(){ re.. 요청 매핑 MappingController @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); /** * 기본 요청 * 둘다 허용 /hello-basic, /hello-basic/ * HTTP 메서드 모두 허용 GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } @RequestMapping(value = "/mapping-get-v1", method = RequestMethod.GET.. 로깅 앞으로 로그를 사용할 것이기 때문에, 이번시간에는 로그에 대해서 간단히 알아보자. 운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 참고로 로그 관련 라이브러리도 많고, 깊게 들어가면 끝이 없기 때문에, 여기서는 최소한의 사용 방법만 알아본다 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다. 스프링 부트 로깅 SLF4J - http://www.slf4j.org Logback - http://logback.qos.ch 로그 선언 private Logger log = LoggerFactory... SPRING MVC 실용적인 방식 이전 글에서 SPRING MVC에서 제공해주는 편의기능들을 이용해서 컨트롤러를 만들어봤다. 뷰를 반환하는 방법으로 ModelAndView를 직접 생성하고 반환을 했는데 이 부분도 좀 더 개선해보자. 먼저 수정한 코드를 확인해보자. @Controller @RequestMapping("/springmvc/v3/members") public class SpringMemberControllerV3 { private MemberRepository memberRepository = MemberRepository.getInstance(); @GetMapping("/new-form") public String process(){ return "new-form"; } @PostMapping("/save") public .. 인덱스(INDEX) INDEX란 DB에 테이블 검색 속도를 향상시키기 위한 자료구조 별도의 추가 저장 공간을 활용하여 인덱스 생성 데이터와 데이터 위치를 포함한 자료구조 생성 데이터를 빠르게 찾을 수 있기 때문에 디스크 엑세스 횟수 감소 DBMS에서 인덱스를 자동으로 사용하며 유지 보수 수행 인덱스는 언제든지 생성 및 삭제가 가능하며 다른 테이블이나 인덱스에 영향을 주지 않음 인덱스를 통해 데이터 조회를 위한 SELECT뿐만 아니라 UPDATE와 DELETE의 성능도 향상 INDEX 관리 데이터에 변경이 발생하면 최신 상태 유지를 위해 인덱스 관리 필요 인덱스가 적용된 컬럼은 최신 데이터를 정렬된 상태로 유지 INSERT, UPDATE, DELETE 발생 시 인덱스 관리 수행 INSERT : 새로운 데이터에 대한 인덱스 추.. VIEW 뷰란? 사용자에게 접근이 허락 된 데이터만 제한적으로 제 하나 이상의 테이블로부터 유도 된 가상 테이블 뷰에 대한 질의 실행시 정의된 테이블로 대체되어 실행 임시 작업을 위한 용도로 활용되고 사용상의 편의성을 최대화함 특징 테이블에서 유도되었기 때문에 구조가 같다. 가상 테이블이라 물리적으로 구현되지 않아있다. 데이터의 논리적 독립성 제공 뷰로 필요한 데이터만 처리하므로 관리 용이 여러 테이블을 조인하여 뷰 생성 가능 뷰에 나타나지 않은 데이터를 안전하게 보호 테이블의 기본키를 포함하여 뷰를 구성하면 삽입, 삭젝, 갱신 가능 장점 단점 - 논리적 데이터 독립성 제공 - 동일 데이터에 대해 동시에 여러 사용자 요구 지원 - 사용자의 데이터 관리 편의성 제공 - 접근 제어를 통한 보안 제공 - 독립적 인덱스.. 서브 쿼리 종류 서브 쿼리의 종류는 3가지로 나뉘는데 사용하는 위치에 따라 나뉜다. 첫번째, SELECT절에서 사용되는 스칼라 서브 쿼리 스칼라 영어로 한번에 한가지라는 뜻으로 하나의 행을 반환하는 서브쿼리이다. SELECT *, (SELECT dept_name FROM Departments d WHERE d.dept_id = e.dept_id) -- 이 부분이 스칼라 서브쿼리 FROM Employees e 이처럼 Employees의 테이블의 없는 컬럼을 다른 테이블과 조인하여 사용이 가능하다. 두번째, FROM절에서 사용되는 인라인 뷰 인라인 뷰는 FROM절에서 사용되는 서브쿼리로 하나의 임시 테이블을 만든다고 생각하면 된다. 그렇게 때문에 메인 쿼리에서는 인라인뷰(서브쿼리)에서 SELECT한 컬럼만 사용이 가능하다... 이전 1 2 3 4 5 6 ··· 9 다음