KSUG 하반기 가을세미나 - 당신의 자바를 한단계 올려드립니다 더 자바 코드를 테스트하는 다양한 방법 - 백기선 최근 MSA 환경에서 다른 시스템이나 데이터 중심의 테스트코드를 작성해야 하는데, 이를 해결하기 위한 좋은 방법이 될것 같다는 생각이 들었다. 그리고 테스트환경을 실제 환경하고 동일하게 해야한다에 대해서 여러 의견이 많지만, 동일하게 해야 한다는 관점에서 좋은 방법을 제시해 주셨던 것 같다. 발표자료: https://bit.ly/2q8S3Qo 세션 내용 Spring Boot 2.2 가 릴리즈 되면서 JUnit 5 가 추가되었다. Jupiter (junit 5 프로젝트명) 는 하위호환이 되지 않고 vintage engine 을 추가 해야한다. Spring-boot-starter-test 2.2..
이글은 Spring Boot 로 Test 작성시 @MockBean 이 제대로 동작하지 않는 삽질을 하게 되어 정리합니다. 새로운 조직에 와서 @MockBean 을 사용을 하여 IntegrationTest 를 작성 중이였는데, Mocking 이 제대로 동작을 하지 않아서 한참을 삽질을 하였다. 결론 부터 말하면 바로 이전팀에서도 동일한 삽질을 했었다. 하지만 똑같은 삽질을 하게 되어 이렇게 정리하게 되었다. 분명 나와 같은 실수를 하는 사람들이 있을 지도 모르기에 기록으로 남기고자 한다. 왜 삽질을 했나? Spring Boot 으로 DBUnit 을 이용하여 테스트를 작성할려고 하면 springtestdbunit/spring-test-dbunit 가이드대로 하게 된다. 그런데 @MockBean 이 동작 하지..
간혹 여러 커뮤니티에서 보면, 처음 Java 나 Spring 에 입문하는데 책을 추천해달라는 글을 심심치 않게 보게 된다. 그때마다 머릿속에 있는 책을 찾아서 공유해주는게 귀찮아서 블로그에 포스팅을 해서 이글을 공유 해주려고 하는 목적으로 작성한다. Java 기본적으로 기본서 3~4권 정도 정독하길 바란다. 시간차를 두고 책을 보면서 기본기를 다지면 좋다. 사실 나는 OCJP 자격증을 공부하면서 Java 기본기에 대해서 많이 다져진것 같다. https://asfirstalways.tistory.com/146 에서 보면 잘 설명되어 있어서 참고 하길 바라며, 도서 목록만 인용 합니다. 자바의 정석 자바의 신 나는 정말 자바를 배운적 없다구요 이것이 자바다 Head First Java 뇌를 자극 하는 자바 ..
스프링 AOP구현 방식은 2가지가 있습니다. 1. 대상객체가 인터페이스 구현방식을 경우 -> 일반적인 proxy pattern 을 이용하여 AOP구현 2. 대상객체가 인터페이스를 구현 안햇을 경우 -> CGLIB 라이브러리를 이용하여 구현 CGLIB이란,동적으로 대상객체를 상속하는 클래스를 만들어 프록시를 구현한후필터클래스를 이용하여 공통의 관심사(Aspect)적용 참고사이트 - http://javacan.tistory.com/entry/114 --- 내용 추가 ----* 강제로 CGLIB 통한 프록시객체 생성방법 1. aop:config 태그에 다음 속성 추가 : proxy-target-class="true" 2. 어노테이션의 경우
RESTful Service를 개발하면서 사용자( consumer ) 에게 서버족의 예외상황이나 에러코드에 대해 어떻게 처리해줘야 하는지 간단하게 정리해보고자 한다. REST 이론에서 가이드하는 방식도 있지만, RESTful 서비스 취지대로 Consumer 가 얼마나 편리하고 간편하게 서버의 자원을 이용할수 있도록 가이드하는게 제일 우선이라고 말할수 있겠다. 그럼 먼저 RESTful 에서 권장하는 방법에 대해서 간략하게 소개하고 그 다음 이를 어떻게 편리하게 사용할 수 있도록 구현하는지에 대해 알아 보도록 하자. 1. REST 이론 - 인증실패나 parameter 실패등이 발생했을때는 HTTP Header 의 Status 값을 이용하여 응답을 주라고 하고 있다. 예를 들어 인증실패의 경우 401 코드, ..
Spring Framework 를 사용하면서 설정파일에 대한 정확한 개념을 가지고 있지 못했던 것 같았다. 이번에 교육을 통해서 그동안 정확하게 머릿속에 정리되지 않았던 설정파일들에 대해 정리하고자 한다.필자와 같이 Spring Framework 를 사용하면서 무조건 코딩만 해왔던 분이라면 한번쯤 읽어보면 어떨가 하고 추천해본다. 몸값 높은 개발자를 위하여! 재미있는 개발을 위하여! 1. 디렉토리 구조 web server doocroot 폴더 구조의 일부를 보면 아래와 같다. WEB-INF 밑에는 컴파일된 class파일이 담겨져 있는 classes 폴더와 웹어플리케이션에서 사용하는 라이브러리들이 위치하는 lib 폴더가 대표적이다. 그리고 오늘 알아보려고 하는 dispater-servlet.xml, app..
예외종류 : Exception in thread "VFW Request Thread" java.lang.UnsatisfiedLinkError: JMFSecurityManager 후배가 화상채팅을 만들고 잇었는데, 테스트를 도와주던중 엄청난 예외에 빠지고 말았다... 간략하게 정리 해본다.. 지금 시간이 새벽 3시를 향해 달려가기에.. 1. 장치를 찾을수 없다는고 나옴 해결법 : 이클립스 라이브러리에 jmf 홈폴더 아래 lib 폴더에 있는 jar 파일을 모조리 추가 하여라. 2. 위와같은 예외발생 ( Exception in thread "VFW Request Thread" java.lang.UnsatisfiedLinkError: JMFSecurityManager ) 윈도우7 64비트 일경우 발생한다. JM..
Java 로 PDF를 컨트롤 해야 할경우가 종종 있을 것이다. 나도 회사에서 예전에 구입해둔, Crystal Report 10 을 가지고 삽질과 삽질을 통해 겨우 환경셋팅하고 구현을 성공하였다. (뭐든 영어문서 좀 봐야.. 한다는.. 영어 공부하자.) - Crystal Report에 대한 연동문제는.. 따로 문의 바랍니다. 제가 만든 클래스로 하면 뭐 문제없이 이용가능 할 듯합니다. - iText 소개 iText는 Java를 이용하여 PDF 파일을 생성하고 컨트롤 할수 있는 라이브러리이다. 다운로드 사이트 : http://www.itextpdf.com/download.php * 여러개의 PDF 를 합치기(Merge) [참고] iText를 이용한 PDF 파일 페이지 연결 및 분리 라이브러리 - MergeP..
회사에서 개발 하던중, Java로 클라이언트 프로그램을 개발할 필요가 생겼다. 졸작을 할때, 소켓통신을 이용하여 오목게임을 만든적도 있지만 그때는 정말 허접하게 만들었다는 생각이 든다. 물론, 실무와서 보는게 많게 되어서 그렇게 된것이지만... 소켓 통신에 대해서 내 머릿속에 있는 걸로 이야기 할려고 한다. 100% 정확하다고는 말할 수 없기에 의심하는 눈초리로 보았으면 한다. 1. 소켓동작 원리 직접 설명하는거 보다 아래 링크로 설명하는게 제일 정확하고 빠를듯 하다. - JavaStudy ( Stream과 Socket ) http://www.javastudy.co.kr/docs/lec_java/sang/stream_socket.html 2. 삽질. - 서버에서 커넥션을 끊을 경우!? 증상 : 메시지를 ..