REST API란? REST란, 클라이언트와 서버가 통신하는 방법 중 하나로 HTTP URI로 자원을 명시하고 HTTP METHOD로 그 자원의 행위를 적용하는 것을 의미한다. 예를들어 게시글을 작성하는 기능의 API를 설계한다고 하면, api/posts/write 처럼 URI에 자원의 행위까지 명시하는 것이 아니라 api/posts 라고 하고 HTTP METHOD를 POST로 하여 구분하는 것이다. 이러한 REST 아키텍처 스타일을 따르는 API 설계방식을 REST API라고 하고 REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹서비스라고 한다. 오버로딩과 오버라이딩 자바에서 다형성을 지원하는 방법으로, 오버로딩(Overloading)은 같은 이름의 메서드를 여러개 가지면서 각각 매개변수의 유..
AOP 로그를 남긴다거나 권한을 체크하는 등 일종의 부가기능들은 애플리케이션 전역에서 나타날 수 있는데, 이것을 핵심 기능인 비즈니스 로직에 넣게 되면 중복코드가 많아지고 유지보수가 어려워진다. 로깅이나 권한 검사와 같은 부가기능들은 하나의 관심사를 갖게 되는데 비즈니스 로직을 수행할 때 이러한 관심사들이 비즈니스 로직마다 중복이 되어 횡단으로 나타나기 때문에 이것을 횡단 관심사라고 한다. AOP는 관점지향프로그래밍으로, 핵심 기능인 비즈니스 로직과 부가기능을 분리해서 부가기능인 횡단관심사들을 모듈화해서 객체지향을 보완할 수 있도록 하는 것이 목적이다. 서비스 로직을 하나의 트랜잭션으로 만들 때 원래는 로직의 시작점에 트랜잭션을 열어주고 끝날 때 트랜잭션을 커밋하는 코드가 들어가야 하는데 @Transac..
filter와 interceptor filter 와 interceptor 는 AOP 와 함께 공통 기능을 모아서 처리할 수 있는 방법을 제공한다. filter 는 Dispatcher Servlet에 요청이 전달되기 전/후 로 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너 에 의해 관리된다. interceptor 는 Controller 를 호출하기 전/후에 스프링 컨텍스트 에서 동작한다. 필터는 다음 필터를 호출하기 위해 chain.doFilter 로 request, response 객체를 넘겨주기 때문에 원하는 객체를 넣어서 조작할 수 있지만 인터셉터는 디스패처 서블릿이 인터셉터 목록을 for문으로 돌면서 true 혹은 false를 반환해 동작을 제어하기 때문에 객체를 조작할 수 없다는 점에서 필터와 ..
Spring WEb MVC의 Dispatcher Servlet 동작원리 클라이언트의 요청을 Dispatcher Servlet이 최초로 받고 요청 정보를 통해 위임할 컨트롤러를 찾아서 HandlerMapping 에 전달한다. HandlerMapping 에서 Contoller 에 처리를 요청하고 controller가 처리한 요청을 HandlerAdapter 에서 ModelAndView 객체로 변환하여 dispatcher servlet 에 전달한다. dispatcher servlet은 전달받은 ModelAndView 객체를 이용해 매핑되는 view를 검색한다. ViewResolver 에서 처리 결과를 view에 전달하고 결과물을 dispatcher servlet에 전달한다. dispatcher servlet에..
JPA와 ORM JPA는 자바 언어를 DB가 이해할 수 있도록 하는 번역기라고 할 수 있다. 원래 DB는 SQL이라는 언어를 사용해서 객체를 저장하거나 불러올 수 있는데 매번 DB와 소통할 때 SQL을 작성하게 되면 객체지향적으로 프로그래밍을 할 수가 없다. 이러한 객체지향과 관계형 DB간 패러다임 불일치를 해결하기 위한 기술이 ORM 프레임워크이고 자바 진영의 ORM 기술 표준이 JPA이다. JPA는 개발자가 SQL을 작성하지 않아도 적절한 SQL을 생성해서 DB와 소통하고 객체를 Mapping해주기 때문에 생산성을 크게 높일 수 있고 DB를 바꾼다고 해도 매핑 정보가 class로 명시되어 있기 때문에 쿼리를 수정할 필요가 없어 유지보수에 유리하다. 그러나 쿼리가 자동으로 생성되는 만큼 개발자가 의도하..
- Total
- Today
- Yesterday
- 해시맵
- Algorithm
- 이분탐색
- SQLD
- 백준
- Nest
- 자바dp
- SQL
- 알고리즘
- 스프링
- Comparator
- JavaScript
- Queue
- 자바스크립트
- 타입스크립트
- BFS
- Spring
- 스프링부트
- 형변환
- 프로그래머스
- DP
- 자바bfs
- 정렬
- dfs
- java
- 리액트
- CS
- JPA
- 자바
- 자바트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |