java
IntelliJ에서 Live Template 추가하기
Intellij에서는 sout, iter와 같은 여러 편리한 Live Template를 제공한다. 여기서는 사용자 Live Template를 생성하는 법을 알아보자. ex) JUnit Test jUnit을 활용한 테스트 진행 시 매 테스트마다 비슷한 구조를 계속 입력해야 한다. 이를 아얘 나만의 템플릿으로 만들어 사용하면 보다 편리하게 테스트를 진행할 수 있다. 인텔리제이 Settings(윈도우 단축키 ctrl+alt+s)에 들어가서 "template"를 검색한 후 "Live Template"을 클릭한다. 이 곳에서 여러 iter == for문 생성과 같은 여러 템플릿을 볼 수가 있다. 우측에 '+' 아이콘을 눌러 새로운 템플릿 역시 만들 수 있다. 나는 "custom" 이라는 Template Group..
IntelliJ 단축키 정리 - Windows
IntelliJ에서 사용했던 단축키를 정리한다. IntelliJ는 기본적으로 자동완성 기능이 잘 갖춰져 있다. 입력시 자동완성블록이 나오면 원하는 내용에 대해 tab이나 enter를 치면 자동완성을 수행한다. 가장 많이 사용한다. ctrl+shift+enter : 코드 한줄을 자동완성과 세미콜론(;)까지 입력시켜 마무리해준다. alt+enter : 해당 부분의 속성창을 켜준다. (class import, 인터페이스 implements 시 overrider 메소드 자동 생성 등) shift+f6 : rename, 다른 위치의 해당 부분과 관련된 곳 모두 바꿔준다. alt+insert : constructor, getter, setter 자동 생성시 사용 ctrl+alt+v : 입력한 메서드에 대한 리턴값을..
[Spring] 빈 스코프
스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 빈 스코프 앞서 배운 싱글톤 빈은 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때까지 유지된다. 이는 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다. 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입 ..
[Spring] 빈 생명주기 콜백
스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 빈 생명주기 콜백 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 간단하게 가상의 외부 네트워크에 연결하는 객체를 생성한다고 가정해보자. public class NetworkClient { private String url; public NetworkClient() { Sys..
[Spring] 의존관계 자동 주입
스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 일반적으로 생성자 주입을 주로 사용하고 가끔 수정자 주입을 사용한다. 필드 주입과 일반 메서드 주입은 거의 사용하지 않는다. 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법이다. 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다..
[Spring] 컴포넌트 스캔
스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 그러나 등록해야 할 스프링 빈이 수십, 수백개가 되면 일일이 등록하는 작업이 반복될 것이다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또 의존관계도 자동으로 주입하는 @Autowired라는 기능..
[Spring] 싱글톤 컨테이너
스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 웹 애플리케이션은 고객이 동시에 계속 요청하는 시스템이다. 그렇다면 매 요청 때마다 객체를 만들어야 할까? 이는 지나친 메모리 사용을 통해 비효율적이다. 이 때문에 싱글톤 컨테이너 사용이 필요하다. 싱글톤 패턴 전에 만들었던 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때마다 객체를 새로 생성한다. 고객 트래픽이..
[Spring] 스프링 설정하기, 스프링 컨테이너와 스프링 빈
스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 앞서 회원주문관리프로그램을 객체 지향 원리에 기반하여 개발해 보았다. 순수 자바 코드로 개발을 진행했지만 다형성 + OCP, DIP를 만족하는 이미 좋은 프로그램인 것 같은데, 스프링을 왜 사용해야 할까? 스프링을 사용함으로써 얻는 이점은 무엇일까? 이에 대해 공부한 내용을 정리해 본다. IoC, DI, 그리고 컨테이너 스프링으로 진입하기 전, 먼저 기본 개념에 대해 알아보자. IoC..