일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- httpservlet기술
- 왜불변객체인가
- HTTP프로토콜
- fcm성능비교
- 검증 실패 예외처리
- 래퍼클래스
- biblecash
- 공유기작동방식
- multipart바인딩
- rest api 검증
- equals
- 클라이언트요청반응
- 옵티마저
- Wrapper class
- 디스패처서블릿
- fcmv1
- java enum
- fcm데이터구조
- 스프링요청반응
- 불변객체
- HttpServlet
- rest api
- multiparfile데이터
- 동기비동기블로킹논블로킹
- DispatcherServlet
- 프로세스 생성
- 옵티마이저
- 중첩클래스
- 동등성동일성
- 데이터베이스파서
- Today
- Total
목록스프링 (17)
개발은 아름다워
서블릿 필터나 인터셉터가 왜 필요할까?웹과 관련된 공통 관심사를 해결하라때로는 로그인한 유저만 접근 가능하도록 만들 필요가 있다. 이럴 경우 어떻게 하면 좋을까?컨트롤러에서 로그인 여부를 체크하는 로직을 하나나하 작성하면 되겠지만, 모든 컨트롤러 로직에 공통으로 로그인 여부를 확인해야 한다. 더 큰 문제는 향후 로그인과 관련된 로직이 변경 될 때, 이전에 작성한 모든 로직을 다 수정해야 할 수 도 있다는 점이다.이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사라고 한다. 위의 예에서는 등록,수정,삭제,조회 등 여러 로직에서 공통으로 인증에 대해서 관심을 가지고 있다.이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만,웹과 관련된 공통 관심사는 서블릿 필터나 스프링 인터셉터를..
커넥션 풀이 왜 필요할까?커넥션을 획득할 때 복잡한 과정을 거치기 때문이다. 이는 시간도 많이 소모되며 결과적으로 응답 속도에 영향을 준다. 응답 속도가 늦어지는 것은 곧 사용자에게 부정적인 경험을 하게 만드는 것이다. 따라서 이러한 문제를 해결하기 위해 커넥션을 미리 생성해두고 관리하는 커넥션 풀이라는 방법을 만들었다. 커넥션 풀이전에 DriverManager를 통해 직접 커넥션을 획득했던 코드를 봐보자.@Slf4jpublic class DBConnectionUtil { public static Connection getConnection() { try { Connection connection = DriverManager.getConnection(URL,U..
도입부 - 왜 JDBC를 알아야하지?프로그래밍 공부를 하면서 느끼는 것은 외부적으로 기술 사용 방법도 중요하지만, 내부 동작원리를 이해하는 것이 중요함을 느낀다. 작년 부트캠프에서 스프링부트로 웹 애플리케이션을 뚝딱(뭐 뚝딱은 아니지만,,) 만들면서 발생한 여러가지 문제들을 이해하려고 했으나, 그 당시 java와 spring에 대한 지식 기반이 얕아서 발생한 문제들을 이해하지 못했다. java를 공부하고 spring 내부의 동작 방식을 하나씩 공부한 후에야 이전에 이해하지 못했던 문제들의 원인을 이해할 수 있었다. 그냥 기술을 가져다가 쓰는 것보다는 내부적으로 어떻게 동작하는지 이해할 때, 그 기술을 이해하는 정도와 숙련도가 깊어진다. 이는 곧 문제 발생시 해결할 수 있는 능력이 높아진다.데이터베이스를 ..
뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메세지 바디에서 직접 읽거나 쓰는 경우 HTTP 메세지 컨버터를 사용하면 편리하다. 그렇다면 HTTP 메세지 컨버터는 어떻게 동작하는걸까?HTTP 메세지 컨버터 동작스프링 MVC는 다음의 경우 HTTP 메세지 컨버터를 적용한다.HTTP 요청 : @RequestBody, HttpEntity(RequestEntity)HTTP 응답 : @ResponseBody, HttpEntity(ResponseEntity)@ResponseBody 사용 원리1. viewResolver 대신 HttpMessageConverter가 동작한다.2. 이 때 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보 ..
현재 필자의 회사는 springMVC 쓰고 jsp를 쓰면서 데이터를 주고 받을때는 HTTP API를 이용한다. 그래서 도대체 어떻게 데이터를 주고 받는지 파악하기가 힘들었다. 그래서 오늘은 스프링에서 만드는 응답 데이터를 정리하는 시간을 가지려고 한다.스프링에서 응답 데이터를 만드는 3가지 방법정적 리소스뷰 템플릿 사용HTTP 메세지 사용1.정적 리소스스프링 부트는 클래스패스의 다음 디테럭에 있는 정적 리소스를 제공한다./static , /public , /resources, /META-INF/resourcessrc/main/resources는 리소르를 보관하는 곳이고, 또 클래스패스의 시작 경로이다. 따라서 다음 디렉토리에 리소르르 넣어두면 스프링 부트가 정적 리소스로 서비스를 제공한다.정적 리소스 경..