목록분류 전체보기 (57)
charminseok
자바의 JVM은 자바파일을 실행시키는 것 뿐만 아니라 garbage collection(GC)이라는 메모리 관리도 해준다. GC는 사용하지 않는 객체를 JVM이 알아서 정리해주기 때문에 메모리 누수를 방지합니다. stop-the-world GC에 들어가기 앞서 가장 먼저 알아야할 용어는 stop-the-world이다. stop-the-world는 GC를 실행하기 위해 JVM이 애플리케이션을 멈추는 것입니다. 그렇기 때문에 stop-the-world가 발생하면 GC를 실행하는 쓰레드 외 모든 쓰레드가 멈추게 됩니다. Garbage Collection을 하는 대상 자바에서 Reference type의 객체를 생성하면 실제 객체는 heap영역에 저장되고 참조 타입 변수는 스택 영역에 실제 객체의 주소를 저장합..
@SpringBootApplication 어노테이션에 @ComponentScan, @EnableAutoConfiguration이 있어서 자동적으로 웹 애플리케이션으로 된다. 먼저 @ComponentScan이 빈을 등록하고 @EnableAutoConfiguration에서는 spring.factories에 있는 Configuration중 조건에 맞는 것으로 적용되어 빈이 생성된다. 자동 설정 만드는 방법 의존성 추가 @Configuration 파일 작성 spring.factories 파일 만들기 spring.factories. 자동설정 파일 추가 mvn install 프로젝트에서 자동설정을 가져왔을때, 직접 만든 빈이 있는데 덮어쓰기가 되는 문제가 생기는데 이를 해결하기 위한 방법으로 자동설정 프로젝트의 빈..
parent POM 사용. spring-boot-dependencies에 모든 의존성들이 정의되어 있다. 그렇기 때문에 버전을 명시하지 않아도 스프링 부트에서 관리해준다. 장점 직접 관리해야할 의존성이 줄어든다. Documentationdocs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-dependency-management docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-dependency-management Spring Boot Reference Documentation This section goes into more detail about..

Spring boot는 제품 수준의 어플리케이션을 빠르고 쉽게 만들 수 있다. opinionated view를 기본적으로 제공해준다. 스프링 부트 프로젝트 구조 @springBootApplication 어노테이션이 있는 main 어플리케이션 클래스는 컴포넌트 스캔 때문에 최상위 패키지에 만드는 것을 추천한다. Application.java에서부터 컴포넌트 스캔을 한다. 스프링 부트 개념과 활용 - 인프런 스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다. 중급이상 프레임워크 및 라이브러리 Back-End Spring Spring Boot Java 온라인 강의 www.inflearn.com 백기선님의 스프링 부트를 들으면서 정리한 내용.
AOP란? 흩어진 Aspect(공통 기능)를 모듈화하는 프로그래밍 기법으로 OOP를 보완해준다. AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 출처: https://engkimbs.tistory.com/746?category=767795 [새로비] AOP 용어 target: 부가 기능을 부여할 대상(class, 메서드, ..). Aspect: 부가기능 모듈 Advice: 부가기능을 담은 구현체로 해야할 일들을 뜻한다. Pointcout: 부가 기능이 적용될 대상을 선정하는 것. 부가기능을 어디에 적용하는지. ..
스프링 Expression Language 객체들의 정보를 조회하거나 조작하는 기능을 제공한다. 여러 EL이 있지만 스프링 프로젝트 전반에 걸쳐 EL이 필요하기 때문에 메소드 호출을 지원하고 문자열 템플릿 기능도 있는 EL을 스프링 3.0에서부터 지원한다. 스프링 코어 뿐만 아니라 여러곳에서 쓰임. #{"표현식"} ${"프로퍼티"} 표현식 안에 프로퍼티를 넣는 것은 가능. ex) #{${}} ExpressionParser parser = new SpelExpressionParser(); Expression expression = parser.parseExpression(“SpEL 표현식”); Integer val = expression.getValue(Integer.class);
Data Binding은 사용자 입력을 애플리케이션 도메인 모델에 동적으로 변환해 넣어주는 유용한 기능이다. 스프링에서 제공해주는 인터페이스로는 DataBinder가 있다. 이러한 기능을 제공하는 이유로는 사용자는 대부분의 입력값을 문자열로 사용하는데, 이런 데이터 타입을 DataBinder가 제공하는 기능으로 자바의 데이터 타입으로 변환해서 넣어주기 때문이다. PropertyEditor PropertyEditor의 구현체들은 thread-safe하지 않기때문에, 여러 쓰레드에 공유되서 사용하면 안된다.(Bean으로 등록해 사용하면 안됌) 상태정보를 가지고 있다 Object와 String간의 변환만 사용할 수 있어서 매우 제한적이다. Converter 이러한 단점들때문에 Spring 3.0부터 Conve..
Bean Validation 이란? Bean Validation은 JavaBean 유효성 검증을 위한 메타데이터 모델과 API에 대한 정의이며 여기서 언급하고 있는 JavaBean은 직렬화 가능하고 매개변수가 없는 생성자를 가지며, Getter 와 Setter Method를 사용하여 프로퍼티에 접근이 가능한 객체를 의미합니다. 애플리케이션에서 사용하는 객체 검증 인터페이스이다. 이 Validator 인터페이스는 특정 계층에만 사용하는게 아니라 모든 계층(웹, 서비스, 데이터, ...)에서 사용할 수 있다. 출처: Spring Bean Validation. Bean Validation 이란? | by Dope | @WEBEVELOPER | Medium validator 인터페이스 1. supports(Cl..