본문 바로가기

분류 전체보기146

[Infra] Terraform 입문 개발자가 매번 AWS 리소스를 관리하기 위해 AWS Console을 사용하는 것은 번거로운 일입니다. 코드로 AWS 리소스를 관리하는 방법이 있는데 Terraform 과 AWS CloudFormation 이 있습니다. 그 중 AWS CloudFormation에 대해서는 아직 학습을 못해서 차이점에 대해서는 학습 후 추가하겠습니다. 이 글에서는 Terraform의 입문을 중심으로 다루겠습니다. Terraform의 경우는 다양한 인프라 리소스를 관리할 수 있습니다. 예를들어 AWS, Azure, Google Cloud Platform .. 등등 운영체제는 Mac/OS를 기준으로 설명하겠습니다. 다른 운영체제에 대한 것은 공식 사이트의 튜토리얼에 친절하게 나와있습니다. Terraform 설치 우선 Terraf.. 2022. 2. 14.
[Kotlin] 코틀린의 철학 코틀린이 자바와의 상호운용성에 초점을 맞춘 실용적이고 간결하며 안전한 언어라고 설명하는 경우가 자주 있다. 여기서 말하는 실용성, 간결성, 안전성, 상호운용성은 각각 어떤 뜻인지 살펴보자. 실용성 코틀린은 실제 문제를 해결하기 위해 만들어진 실용적인 언어다. 코틀린은 대규모 시스템을 개발해본 다년간의 IT업계 경험을 바탕으로 설계했고, 수많은 소프트웨어 개발자들의 사용에 잘 들어맞을 수 있도록 언어 특성을 선택했다. 여기에 Jetbrains 나 코틀린 커뮤니티 내부의 개발자들이 다년간 코틀린 초기 버전을 사용하면서 전달한 피드백이 현재 발표된 최종 코틀린 버전에 반영돼 있다. 이런 이유를 바탕으로 프로젝트에서 문제를 해결할 때 코틀린이 도움이 될 수 있다고 자신 있게 말할 수 있다. 코틀린은 연구를 위한.. 2022. 2. 5.
[Spring Data] 도메인 이벤트 (AbstractAggregateRoot) 이 글은 Spring Data Common 에서 지원하는 도메인 이벤트를 정리하기 위한 글입니다. 우선 Spring 에서 지원하는 이벤트 관련 기능을 간단하게 알아보고 (혹시 스프링의 이벤트 관련해서 더 알아보고 싶은 분은 여기를 참고해주세요!) 다음으로 Spring Data Common 에서 지원하는 도메인 이벤트를 예시와 함께 알아보겠습니다. Spring 에서 지원하는 이벤트 관련 기능 Spring은 이벤트 관련 기능을 지원해줍니다. ApplicationEventPublisher - 이벤트 발행자 ApplicationEvent - 이벤트 객체 ApplicationListener - 이벤트 리스너 @EventListener 위의 기능을 활용하면 이벤트를 발행하고, 이벤트 리스너가 이벤트에 대한 처리를 .. 2022. 2. 1.
[Java] JDK9의 새로운 기능 현재 Java Release가 21까지 나온 상황이다. 아직도 Java8은 많이 사용되고 있지만, 옛날 기술이 되어간다고 느낍니다. 이후 Java 9버전, 11버전에서 강력한 기능들도 추가됐으니 8버전을 쓰는것이 점점 손해라 생각합니다. 더 늦기 전에 9버전, 11버전을 사용해보면서 익숙해지기 위해 새로운 기능들에 대해 정리합니다. 먼저 9버전을 정리하는데 많은 기능들 중에 가장 자주 쓰이는 기능을 정리하겠습니다. (Java 9버전의 더 많은 기능은 오라클의 JDK9 문서를 참고해주세요!) 컬렉션을 위한 팩터리 메서드 자바의 컬렉션 추상화 최상위 수준에는 List, Set, Map이 있습니다. 지금까지 Java에서 컬렉션을 초기화함과 동시에 요소들을 넣는 방법이 간단하지 않았습니다. 또한 컬렉션의 요소를.. 2022. 1. 25.
[Spring] 간단한 파일 업로드/다운로드 서버 구현 백기선님의 Spring Web MVC 강의를 듣고 파일 업로드/다운로드 서버를 직접 만들어보는게 좋겠다고 생각했습니다. 직접 구현하면서 학습한 내용과 느꼈던 생각에 대해 정리하고자 합니다. 환경설정 기본적으로 스프링 부트를 사용하고 스프링 Web MVC를 사용합니다. 템플릿 엔진으로는 thymeleaf를 사용했습니다. 파일 요청을 처리하기 위한 스프링의 요소들 Multipart 요청을 받아서 파일을 업로드한다. Multipart 요청으로 파일을 보내면 MultipartFile로 바인딩이 가능하다. MultipartFile은 파일 업로드시 사용하는 MethodArgument이다. MultipartFile는 DispatcherServlet안에 MultipartResolver가 등록되어있어야한다. Dispat.. 2022. 1. 22.