본문 바로가기

전체 글382

[Spring] Spring에서 예외 처리하기 하이 ~~ 자바 기반의 개발을 했던 분들은 대부분 이 예외처리를 굉장히 골치아파 하셨을 것 같다. 예외처리는 굉장히 중요한 작업이다. 그러므로 우리는 프로그램의 기능을 작성하는 것 이상으로 예외처리를 잘 설계해서 개발해야한다. 자바 어플리케이션에서는 예외 발생 시 프로그램을 중지하고 예외객체를 던지는 식으로 예외가 처리되는데.. 이때 예외처리를 안해주면 클라이언트가 쌩으로 에러메시지를 받게 된다. 이건 완전 Trash 프로그램이다. ㅎㅎ (괜히 찔림...) 스프링의 가장 큰 장점 중 하나는 이 예외처리를 굉장히 간단하게 할 수 있다는 점인 것 같다. Spring 예외처리 방법 스프링 시스템은 전에도 설명한 것처럼 Layered 한 시스템이다. 고로 각 통신은 인접한 영역끼리 일어난다. 스프링에서 예외를 .. 2020. 4. 5.
[Spring] Spring 에서 로그 남기기 하이~~!! 저번 포스팅에서 우리는 AOP라는 녀석을 스프링 환경에서 사용하는 걸 공부했었다. https://devkingdom.tistory.com/115 [Spring] Spring AOP 이용하기 하이 ~~!! 여러분 !! 오늘은 Spring 에서 아주 중요한 개념인 AOP (Aspect Oriented Programming) 에 대해 이야기 해보려한다. 딱봐도 쉽게 설명을 해줄꺼고 , 구현도 간단하게 해볼꺼다. AOP AOP는 비지니스 로직.. devkingdom.tistory.com 그때 내가 AOP를 이용해서 로깅시스템도 분리해서 모듈화 한다고 하고 그랬다. 오늘은 조금 더 구체적으로 로그남기는 것 관련해서 얘기를 조금 해보도록 하겠다. Spring 에서는 다양하게 로그를 남기는 프레임워크를 .. 2020. 4. 5.
[Debugging] java.lang.IllegalArgumentException: error Type referred to is not an annotation type Spring에서 별도로 사용할 Annotation을 만들어서 사용하다 아래의 에러가 발생했다 . org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'crudPjtApplication': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error Type referred to is not an annotation type: tokenRequired at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCr.. 2020. 4. 5.
[Spring] Spring AOP 이용하기 하이 ~~!! 여러분 !! 오늘은 Spring 에서 아주 중요한 개념인 AOP (Aspect Oriented Programming) 에 대해 이야기 해보려한다. 딱봐도 쉽게 설명을 해줄꺼고 , 구현도 간단하게 해볼꺼다. AOP AOP는 비지니스 로직 등의 핵심 기능 (Core Concerns) 들과 로깅, 보안 , 트랜잭션 처리 등 핵심 기능을 도와주는 부가기능 (Cross-cutting Concerns) 으로 분리해서 모듈화 하는 것을 의미한다. 간단한 게시판이 있다고 가정해보자. 게시글을 읽고 쓰고, 답글을 읽고 쓰고, 회원가입하고 로그인하는 그런 아주 일반적인 어플리케이션이다. 그런데 이렇게 어플리케이션을 개발하다보면 로그도 남겨야하고 , 보안적인 이슈도 처리하는 등의 공통적인 부가기능들이 생겨나게.. 2020. 4. 5.
[Spring] JUnit을 활용한 스프링 메서드 모듈 테스트하기 하이 ...!! 여러분 !! 스프링은 TDD (Test Driven Development) 기반의 개발을 할 수 있도록 스프링 프로젝트를 만들때 알아서 테스트 환경을 세팅해준다. 우리는 거기다 코드를 작성해서 테스트를 하면된다. 우리는 지난 포스팅들에서 작성했던 CRUD 프로젝트에서 JUnit을 활용하여 단위테스트를 해볼꺼다. JUnit? JUnit은 말그대로 독립된 단위 테스트를 지원해주는 Java의 프레임워크이다. 단위테스트는 소스코드의 특정한 모듈이 내가 의도한 대로 올바르게 동작하는지 검증하는 것을 의미한다. 만약 여러분들이 단위테스트를 잘 작성하면 더 나은 코드를 작성할 수 있고 이는 비용 감소로 이어질테니 잘 작성해서 활용해보길 바란다. 회사에서 일을 하다보면 테스트가 굉장히 귀찮게 여겨지고 .. 2020. 3. 29.
[Spring] JWT 를 활용한 인증 구현 하이 ~~~ 여러분들 이전 포스팅에서 제가 Spring 에서 CRUD를 구현했었다. 이렇게 서비스를 제공하는 것도 중요하지만, 이러한 웹서비스에서는 인증을 어떻게 구현하느냐도 중요하다. 스프링에서는 Spring Security라는 아주 강력한 보안관련 프레임워크를 제공한다. 우리는 오늘 Spring Security중에서 JWT라는 놈을 이용해서 인증서비스를 구현해볼 것이다. youtu.be/TlWzEr4cXfc 오늘 글이 ... 도움되신 분들은 !! 구독과 좋아요도 많이들 부탁드린다 :) 세션 방식과 토큰 방식 과거에는 우린 서버 (세션) 기반의 인증시스템을 활용해왔다. (지금도 이러한 기반의 시스템은 아직 많다 !) 세션 기반의 인증 시스템은 유저가 인증할 때 이 기록을 서버에 저장하고 어떤 서비스를 .. 2020. 3. 28.
[Spring] Spring 프로젝트 개선하기 - 인터페이스/클래스 분리 하이 ~~ !!! 지난 포스팅에서 REST 에서 CRUD 를 구현해봤다. 오늘은 실무에서 자주 볼 수 있는 형태의 패턴을 공개할거다. ㅎㅎ 먼저 혹시 CRUD 구현 안해본사람은 아래링크 보고 따라 개발해보고 오자. https://devkingdom.tistory.com/110 [Spring] REST에서 CRUD 구현하기 하이 ㅎㅎㅎ 요즘 날씨 진짜 진짜 좋다 ~~!! ㅎㅎ 오늘은 그 동안 갈고 닦은 기본기(?) 를 바탕으로 CRUD를 정석대로 구현해볼꺼다. 다들 잘 따라해보고, 나중에 Spring으로 API 만들거나 웹서비스 만들 때 잘 사.. devkingdom.tistory.com 위의 링크에서 보면 UserService나 UserDao에 로직을 다 구현해 놓았다. 하지만 이를 인터페이스와 서비스로.. 2020. 3. 25.
[Debugging] 스프링에서 'Missing URI template variable for method parameter of type' 에러 발생할 때 개발한 api를 postman 을 통해서 테스트하다가 Missing URI template variable for method parameter of type string 이라는 에러를 마주쳤다. 원인을 파악해보면 url로 들어가 있는 userid와 파라미터로 들어가는 id 가 서로 달라서 발생한다. 1 2 3 4 @GetMapping("/{userid}") public User getUserByUserId(@PathVariable String id) { return userService.getUserByUserId(id); } 이때 해결방법은 2가지가 있다. 하나는 아래처럼, Mapping 과 같은 변수명을 사용해주는 것이다. 1 2 3 4 @GetMapping("/{userid}") public Us.. 2020. 3. 24.
[Spring] REST에서 CRUD 구현하기 하이 ㅎㅎㅎ 요즘 날씨 진짜 진짜 좋다 ~~!! ㅎㅎ 오늘은 그 동안 갈고 닦은 기본기(?) 를 바탕으로 CRUD를 정석대로 구현해볼꺼다. 다들 잘 따라해보고, 나중에 Spring으로 API 만들거나 웹서비스 만들 때 잘 사용하자. 아 !! 만약에 혹시라도 본인이 기본기(?)가 안된다 싶다!! 아래 링크가서 보고오자. Spring MVC로 RESTFul 서비스 개발하기(1) https://devkingdom.tistory.com/108 [Spring] Spring MVC 로 RESTFul 서비스 개발하기 (1) 하이 ~~ 요즘 날씨가 거의 봄이다 봄 ㅎㅎ 어디 놀러나가고 싶지만 ... 코로나때문에 나가지도 못하고 ㅜㅡㅜ 봄 날씨인 만큼 Spring(?) 공부나 같이 열심히 하자. 지난번에 내가 Sprin.. 2020. 3. 23.