이번에는 Gradle(그레이들)이 제공하는 Java 플러그인과 implementation와 api의 차이에 대해 알아보도록 하겠습니다. 1. Gradle Java 플러그인, Java-Library 플러그인 [ Java 플러그인이란? ] Gradle(그레이들)에서 Java 프로젝트를 빌드하려면 기본적으로 java 플러그인이 필요하다. java 플러그인을 통해 컴파일, 테스트, jar 파일 생성 등의 작업들(tasks)이 수행 가능하다. plugins { id 'java' } Java 플러그인이 제공하는 작업들은 아래의 그림에 나와있다. 자세한 내용은 공식 문서를 참고하도록 하자. 자바로 작성된 프로그램은 먼저 Java 파일들을 컴파일하여 바이트 코드(.class)로 만들어내고, 이를 JVM이 읽어들인다. ..
이벤트(Event)는 매우 유용하지만 상당히 간과되는 기능 중 하나입니다. 작년에 아마존 CTO는 이벤트 드리븐 아키텍처로 가야 한다고 기조 연설을 하기도 했는데, 이번에는 스프링 프레임워크에서 이벤트(Event)를 사용하는 방법에 대해 알아보겠습니다. 1. 스프링에서 이벤트 사용법 및 주의사항[ 스프링에서 이벤트의 발행과 구독 ]스프링은 이벤트를 발행하고 구독하는 기능을 제공하고 있는데, 해당 기능은 아래와 같은 기본적인 가이드를 따라야 한다.스프링 부트 1.3(엄밀히는 스프링 4.2) 이전 버전이라면 이벤트 클래스가 ApplicationEvent를 상속해야 함이벤트 발행을 위해서는 ApplicationEventPublisher를 주입받아 사용해야 함이벤트 구독을 위해서는 ApplicationLi..
이번에 다룬 내용은 토비님과의 스터디에서 시작하여 토비님의 강의와 영한님의 강의 및 직접 학습하며 배운 내용들을 기반으로 작성되었습니다. 추가할 내용 있으면 공유 부탁드리겠습니다! 감사합니다:) 1. 스프링 부트(SpringBoot)의 탄생 배경, 컨테이너리스(Containerless) 웹 애플리케이션 아키텍처 [ 기존의 스프링 배포 방식 ] 스프링 부트가 없었던 환경에서는 배포를 하려면 다음의 번거로운 작업을 거쳐야 했다. 톰캣 같은 웹 애플리케이션 서버(WAS) 설치 애플리케이션 코드를 WAR로 빌드 빌드한 WAR 파일을 WAS로 옮기고(배포) WAS 실행 이러한 작업은 톰캣과 같은 WAS를 서버에 직접 설치해야 하므로 상당히 번거로울 뿐만 아니라 개발 환경 설정과 배포 과정도 복잡하는 등 많은 단점..
아래의 내용은 일론 머스크가 직원들에게 보내준 메일의 내용을 번역한 것입니다. 모든 부분에서 굉장히 공감이 많이 갔고, 이미 번역본이 많지만 개인적으로 소장 + 혹시 모르는 분들에게 공유하기 위해 작성하였습니다. 1. 일론 머스크의 생산성을 위한 법칙들 큰 규모의 미팅은 피하라 잦은 회의 역시 피하라 가치를 느끼지 못하는 회의는 멈춰라 뜻이 통하지 않는 단어는 사용하지 마라(줄임말, 전문 용어 등) 동료들과 직접 소통하라 상식적으로 일하라 [ 큰 규모의 미팅은 피하라 ] 과도한 미팅은 큰 기업들에게 엄청난 해악이며, 거의 항상 시간이 지남에 따라 악화된다. 모든 참여자들에게 가치를 제공한다는 확신이 서지 않는다면 모든 대규모 회의를 제거하라. 만약 필요하다면 가능한 짧게 유지하라. [ 잦은 회의 역시 피..
아래의 내용은 Nginx 설정을 정리한 부분입니다. 관련 코드는 깃허브에 올려두었고, 가능한 모든 부분에 주석을 남겨두었으니, 상황에 맞게 수정해서 사용하시면 됩니다. 1. Nginx 예시/샘플 설정 공유 [ Nginx 설정 파일들 ] 실무에서 사용되는 Nginx 설정은 꽤나 복잡한데, 이를 아래와 같이 분리하였습니다. mime.types: Nginx 서버에서 처리할 MIME 타입 모음 upstream.conf: upstream(서버 그룹)을 모아둔 설정 파일 header.conf: 요청을 다른 서버로 프록시할 때, 전달해주는 헤더 설정 파일 ssl.conf: SSL과 관련된 설정 파일, SSL 인증서 파일을 경로로 참조함 ssl-server.conf: SSL 요청(443 포트)로 들어오는 요청과 관련된..