일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이트코스
- 앤드밀
- 압구정로데오맛집
- exceptionHandler
- 셀렉티
- 맛집
- 서오릉맛집
- 이속우화
- 데이트
- JUnit5
- 토비의스프링
- 녹는다녹아
- 인생맛집
- Java
- spring
- 한우오마카세
- 인생소고기집
- 상암동
- 닭껍질만두
- 경기족발
- 고기김치
- 서오릉
- @ExceptionHandler
- 상암동맛집
- @ControllerAdvice
- 청춘면가
- 아일랜드리솜
- EffectiveJava
- 이펙티브자바
- 압구정곱떡
- Today
- Total
목록Dev_.log/Spring (8)
Hyeonuk_.log
JPQL (Java Persistence Query Language) 특징 - 객체지향 쿼리 언어다. 따라서 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다. - SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. - 결국 SQL로 변환된다. SELECT 문 SELECT m FROM Member AS m where m.username = 'Hello' 엔티티와 속성은 대소문자 구분한다, Member는 클래스 명이 아니라 엔티티명이다. 별칭은 필수이다. TypeQuery, Query 작성한 JPQL을 실행하려면 쿼리 객체를 만들어야 한다. 쿼리 객체는 TypeQuery와 Query가 있는데 반환할 타입을 명확하게 지정할 수 있으면 TypeQuery 객체를 사용하고, 반환..

요즘 느끼는 거지만 정말 기록만이 살길이다. 토비의 스프링 6장을 읽으며 1권에서 가장 중요한 부분은 AOP이며 6장이 제일 중요하다고 느꼈다. 물론 나는 지금 두번째 읽고 있지만 이제 슬슬 이해가 가는 느낌이다. 정리를 한번하고 다음에 한번 더 읽을 때, 이 글을 보여 수정을 해볼 생각이다. 일단 AOP 관련 용어에 대한 개념을 확실하게 가지고 가야한다. • 타깃 타깃은 부가기능을 부여할 대상이다. 핵심기능을 담은 클래스일 수도 있지만 경우에 따라서는 다른 부가기능을 제공하는 프록시 오브젝트일 수도 있다. • 어드바이스 어드바이스는 타깃에게 제공할 부가기능을 담은 모률이다. 어드바이스는 오브젝트 로 정의하기도 하지만 메소드 레벨에서 정의할 수도 있다. 어드바이스는 여러 가지 종류가 있다. Methodl..

토비의 스프링 3장을 읽다가 템플릿/콜백 연습 기록, 아래의 내용은 모두 토비의 스프링 참고하였습니다. public class CalcSumTest { @Test public void sumOfNumber() throws IOException { Calculator cal = new Calculator(); int sum = cal.calcSum(getClass().getResource("numbers.txt").getPath()); assertThat(sum, is(10)); } } 테스트코드 작성 후 실제 구현 코드 작성 public class Calculator { public Integer calcSum(String filepath) throws IOException { BufferedReader..

요즘 토비의 스프링을 다시 읽고 있다. 두번째 읽고 있는 것인데 첫번째 읽을 때보다 이해도 잘되고 더 얻어가는게 많다. 2장을 읽고 있는데 2장의 소스코드를 따라서 작성해보다가 오류가 났던 것을 적어두려한다. @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = DaoFactory.class) public class UserDaoTest { @Autowired private static ApplicationContext applicationContext; private static UserDao userDao; private static User user1; private static User user2; private static Use..
요즘 개발 관련 책, 블로그, 유튜브 등 다양한 곳에서 TDD(Test Driven Development)에 대해서 다루어지고 있다. 사실 요즘이 아니라 계속 중요성이 강조되었을 것이다. 내가 관심을 갖은게 최근.... 매번 구글링 하는 것이 힘들어 블로그에 정리를 하려한다. Service 레이어의 단위테스트는 서비스만을 테스트해야 한다고 생각한다. 그래서 Controller와 Repository의 연결을 끊어야한다. 연결을 끊지 않으면 데이터 준비, DB 연결, 셋팅 등등..배보다 배꼽이 더 큰 상황이 벌어지게 된다. 아래의 예제를 봐보자. 실제 테스트를 위해 Repository와의 의존성이 필요하고 데이터들도 필요하다. @Service public class MemberServiceImpl imple..

업무에서 Spring RestTemplate을 사용하면서 알아낸 점을 공유드리려고 합니다. 일단, Spring 버전은 3.1 이었습니다. 재직하고 있는 회사 업무에서 제휴사 연계를 위해 RestTemplate을 사용하게 되었습니다. 1. 들어가며... 보통 Http 통신을 할 때 사용하는 RestTemplate, HttpUrlConnection, HttpClient, WebClient 에 대해 알아보도록 하겠습니다. - RestTemplate spring 3.0 부터 지원을 합니다. 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿이며, HTTP 서버와의 통신을 단순화하고 RESTful 원칙을 지키며, 기계적이고 반복적인 코드를 줄여줍니다. JSON, XML 형식도 쉽게 변환해서 송수신을 ..

오류처리를 어떻게 해야할까?라는 의문의 들때가 많았다. 재직하고 있는 회사에서 맡은 업무에서는 어떤 시스템은 응답코드로 분기를 하여 처리를 했다. 얼마전 읽은 '클린코드'에서는 응답코드 대신 try catch를 이용하여 Exception을 던지라고 되어 있었다. 이것 저것 찾아보던 도중 @ExceptionHandler, @ControllerAdvice에 대해 공부하게 된 내용을 남긴다. 오류코드보다 예외를 사용하라 -클린코드- 순서는 아래와 같다. 1. @ExceptionHandler 2. @ControllerAdvice 1. @ExceptionHandler @Controller public class MyController { ... ... @ExceptionHandler(NullPointerExcep..

스프링에서 @ControllerAdvice가 어떻게 동작하는지에 대해 공부해 본 결과, Spring MVC가 어떻게 돌아가는지에 대해 공부해야했다. 구글에 존재하는 많은 이미지 중, 아래의 Spring MVC Life Cycle에 대한 이미지가 DispatcherServlet 소스를 참고하기 전 이해를 도와주는데 많은 도움이 되었다. 1: User가 요청을 보낸다. 2: Filter가 이를 받아 DispatcherServlet에게 넘긴다. 3: Locale, Multipart와 같은 것들에 대한 처리. 4: Request에 대한 Controller Mapping 처리. 5: 실제 처리를 하는 Controller로 가기 전 Interceptor preHandle 처리 6~7 : Controller 내부 프..