본문 바로가기
반응형

Spring14

Pivotal Cloud-Native Day 2019 Seoul 을 다녀와서 Pivotal 에서 개최한 Cloud-Native Day 세미나에 다녀왔다. https://connect.pivotal.io/CND_Seoul_2019.html Pivotal Cloud Native Day 2019 Seoul Pivotal combines our cloud-native platform, developer tools, and unique methodology to help the world’s largest companies transform the way they build and run their most important applications. Our technology is used by Global 2000 companies to achieve str connect.pivotal.. 2019. 7. 4.
Spring Boot Controller Test 하다가 마주친 IllegalArgumentException 컨트롤러를 만들어서 Testcase 를 작성한 후에 성공할거라 믿고 돌려봤는데 IllegalArgumentException 이 발생했다.컨트롤러 코드와 테스트 케이스 코드는 각각 다음과 같다. UserController.java123456@GetMapping(value = "/users/{email}")public UserDto.Res getUser(@PathVariable @Valid final String email){ Optional users = userService.findByEmailValue(email); return new UserDto.Res(users.get());}Colored by Color Scriptercs UserControllerTest.java12345678910111213.. 2019. 3. 7.
[길벗 개발자 리뷰어] 스프링 마이크로서비스 코딩 공작소 요즘에 한참 클라우드 관련 내용들을 공부하고 도커, 쿠버네티스 에 대한 내용을 보다보니 마이크로 서비스에 대한 내용들을 자주 접하게 되었다. 컨테이너를 사용한 환경에서 어플리케이션을 배포하고 관리 하려면 아무래도 덩치가 큰것 보다는 좀더 작게 모듈화 해서 배포 하는것이 나을 것이다. 어플리케이션의 크기가 작아진다는 것은 간단히 생각해봐도 배포시간이 줄어들고 그렇게 되면 다운 타임 또한 줄어들게 된다. (물론 배포 전략에 따라서 이런 부분들은 없도록 하는게 맞다.) 그래서 나 또한 마이크로 서비스에 대해서 다시 관심을 갖게 되었고 이것저것 책을 찾아보고 읽어보고 있었다. 전부터 관심이 있어서 한번 읽어봐야겠다고 생각은 하고 있었는데 길벗 개발자 리뷰어에 선정되어서 이렇게 책을 접할수 있게 되었다. (베타리.. 2019. 2. 27.
SpringOne Tour 참석 후기 지난번 Google Summit 에 이어 이번에는 피보탈에서 주최하는 SpringOne Tour 세미나에 참석을 했다. https://springonetour.io/2018/seoul 우연히 Facebook 타임라인에 뜬 세미나 일정과 Agenda 를 보고 신청을 했었다. Spring 관련 세미나라서 내용에 대한 기대가 컸다. 세미나의 전체적인 주제는 Reactive 와 Cloud 관련 내용들이 많이 있었다. 회사에서 많이 쓰지는 않는 내용들이었지만 그래도 공부하면서 봤었던 유투브에서 봤던 내용들이어서 어느정도 이해할 수 있었다. 그리고 대부분 라이브 코딩이 포함되어 있어서 오히려 더 도움이 됐다. 세션 요약1. Reactive Spring with Spring Boot 2.0 - Mark Heckler.. 2018. 11. 8.
[Spring Security]간단 Spring Security Spring Security 를 적용하는 내용을 처음부터 차근차근 정리를 해보려고 한다. 목표는 Spring Security 를 공부하면서 각각의 기능들을 적용해보는것이다. 진행하다보면 Spring Security 뿐만 아니라 다른 내용들도 점점 추가될것 같다. 다 만들고 나서는 git에 소스를 공유할 생각이다. ^^;; 언제가 될지는 잘 모르겠다. 환경 : java 1.8, Spring Boot 1.5.3 Release, Maria DB, JPA, gradle build.gradle12345678910111213141516171819202122232425262728293031323334buildscript { ext { springBootVersion = '1.5.3.RELEASE' } reposito.. 2017. 6. 27.
[Spring]Controller Test 하기 테스트케이스를 만들어서 작업을 하면 소스코드가 수정될 경우 코드를 테스트 해보기가 참 수월하다. 그런데 이 테스트 케이스 작성하는게 생각보다 만만치는 않다. 실제 DB 를 읽어서 테스트를 해야 하는지. 아니면 Mock 객체를 정의를 해서 사용을 해야 하는지. 실제 DB 를 사용할 경우 저장된 data 가 변경이 되어서 구현했을 당시 테스트 케이스는 Pass였지만 나중에 빌드 시점에 테스트 케이스가 실행될 경우에 Fail 이 나면 어떻게 할것인지. 생각해보면 그냥 서비스 구현해서 화면 띄우고 버튼 눌러서 테스트 하는것이 더 편할지도 모른다는 생각이 들기도 한다. 작성할 때마나 서비스 테스트, repository테스트, 컨트롤러 테스트에 대해서 구글링 하면서 작성을 하다보니 뭔가 남는게 없는것 같아서 샘플을.. 2017. 6. 12.
[Spring]Jasypt 를 이용한 properties 암호화 프로젝트 내부에는 설정파일들이 많이 있다. 대표적인 항목이 DB 접속 정보가 있다. 그런데 이 접속정보에는 ID, PASSWORD 가 항상 존재 한다. ID는 상관이 없지만 PASSWORD 정보가 파일 내부에 평문으로 적혀있으면 외부에 노출될 위험이 있다. 그래서 암호화를 해야 한다. Jasypt를 이용하면 이런 항목들을 쉽게 암호화 할 수 있다. 먼저 라이브러리를 다운로드 받는다. http://www.jasypt.org/download.html 사이트에 들어가보면 상단에 DOWNLOAD JASYPT 라는 링크가 있다. 그 걸 누르면 라이브러리를 다운로드 받을 수 있다. 이 글을 쓰는 시점의 버전은 1.9.2 이다. 다운로드 한다음 사용 방법은 간단하다. 압축을 푼후에 bin 폴더로 이동한다. 그리고 콘.. 2017. 4. 25.
[SpringCloud]Spring Config.. myapplication 이라는 이름을 가지고 있고 sample 이라는 profile을 설정했을경우 우선순위는 다음과 같다. 1. myapplication-sample.yml2. myapplication.yml3. myapplication.properties 2016. 1. 26.
spring Cache @Cacheable캐시할 메서드를 지정한다. 위 어노테이션을 사용한 메서드는 결과를 캐시에 저장하기 때문에 뒤이은 호출에서는 실제로 메서드를 실행하지 않고 캐시에 저장된 값을 반환한다. @CachePut메서드 실행에 영향을 주지 않고 캐시를 갱신해야 하는 경우.메서드를 항상 실행하고 그 결과를 캐시에 보관 한다. @CacheEvict캐시에 데이터를 제거하는 트리거로 동작하는 메서드 이다. 2015. 12. 5.
Spring propagation MANDATORYSupport a current transaction, throw an exception if none exists.시작된 트랜잭션이 있으면 support, 없으면 예외 발생 NESTEDExecute within a nested transaction if a current transaction exists, behave like PROPAGATION_REQUIRED else.시작된 트랜잭션이 있으면 중첩해서 트랜잭션을 실행한다. NEVERExecute non-transactionally, throw an exception if a transaction exists.트랜잭션이 있으면 예외 발생 NOT_SUPPORTEDExecute non-transactionally, suspend the .. 2015. 12. 1.
[Spring]SpEL(Spring Expression Language) SpEL - Expression Languege중 하나, 런타임시 특정 객체의 정보에 접근하거나 조작할수 있도록 지원. 1. XML 기반 Bean 정의시 classpath상에 존재하는 context.properties파일을 로드하여 bean으로 정의한 후 driver, url 등의 정보를 추출함. 2. Annotation 기반 Bean 정의시@Repository(“movieDao")public class MovieDao extends SimpleJdbcDaoSupport { @Value("#{contextProperties['pageSize'] ?: 10}") int pageSize; @Value("#{contextProperties['pageUnit'] ?: 10}") int pageUnit; @Inj.. 2012. 7. 31.
[Spring]Autowiring - Autowiring 이란 Spirng container가 bean 간의 참조관계를 자동으로 연결해주는 기능- 속성값 1. no : 기본값 2. byName : property 명과 동일한 id 또는 name을 가진 bean 3. byType : 동일한 클래스타입,(같은 타입 여러개 존재시 exception 발생) 4. constructor : byType과 비슷하나 생성자인자에 적용 5. autodetect : constructor 모드 수행후 byType 모드 수행 6. default : 최상위 태그인 에 셋팅한 모드가 수행됨. (default-autowire 속성) Setter Injection 사용시 Autowire 사용시 특정 bean을 autowiring 제외시키려면 2012. 5. 3.
728x90
반응형