LazyInitializationException
Hibernate를 이용하여 개발하다보면, 자주 늘 만나는 녀석이다.
이러한 현상이 발생하는 이유는 다음과 같다.
1. 조회 서비스가 Select를 위한 서비스 (트랜잭션이 걸린)에 조회 요청을 한다.
2. 조회 결과가 반환 되면서 트랜잭션 종료
- 이때 Entity는 영속상태가 아니라, 준영속 상태로 빠진다.
...
Spring Transactional Propagation
트랜잭션 전파 :
MANDATORY
현재 트랜잭션을 지원한다. 만약 트랜잭션이 존재하지 않으면 exception을 던진다.
NESTED
만약 현재 트랜잭션이 존재하는 경우라면, 중첩된 트랜잭션을 실행한다.
트랜잭션이 없다면 PROPAGATION_REQUIRED 처럼 동작한다.
NEVER
트랜잭션 없이 수행되도록 한다. 만약 트랜잭션이...
Elasticsearch Configuration
Environment Variables
- EL은 자바의 환경변수 JAVA_OPTS에 따른다.
- 가장 중요한 환경 설정값은 -Xmx (최대 메모리), -Xms (최소메모리) 의 설정이다.
- 대부분 JAVA_OPTS는 그대로 두고, ES_JAVA_OPTS를 설정하여 JVM의 환경변수를 변경한다.
- ES_HEAP_SIZE 환경 변수는 힙 메모리를 설정하는 값이다.
...
SpringBoot에서 Log설정하기.
SpringBoot에서 Log 설정하기.
Spring Boot에서 로깅을 위해서는 spring-boot-starter-logging을 의존성에 추가하면 된다.
웹 어플리케이션을 사용한다면, spring-boot-starter-web만 사용하면 된다.
Maven 의존성 추가하기 :
<dependency> <groupId>org.springframework.boot</groupId> ...
Mac Mysql 설치
MYSql Mac 설치 & 삭제
1. Mac 에서 mysql 삭제 명령어 :
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo...
Lombok 설치하기 (Mac + Eclipse)
Mac에서 이클립스를 이용하여 Lombok 설치하고 사용하기.
Lombok은 getter/setter/constructor/toString/hash/equals등을 자동으로 생성해주는 멋진 툴이다.
그 사용법을 알아보자.
1. Lombok 다운로드 하기.
https://projectlombok.org/download.html
lombok.jar 1.16.6을...
ElasticSearch 설치 on Mac
엘라스틱 서치를 Mac 에 설치하기.
1. brew인스톨 하기.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. elasticsearch 설치하기.
brew install homebrew/versions/elasticsearch14
3....
Web Security Service Model
Web Security Service Model
Security Service Model은 다음과 같은 6가지로 분류 할 수 있다.
1. Session-based security
2. HTTP Basic Authentication
3. Digest Authentication
4. Certificate Based security
5. XAuth
6. OAuth
1. Session...
Richardson's Maturity Model
Richardson's Maturity Model
- (RMM)은 Leonard Richardson에 의해서 개발된 REST 기반의 웹 서비스 분류법이다.
- 4단계로 분류하고 있다.
Richardson's Maturity Model
- RMM은 서로다른 웹 서비에 대해서 이들간의 디자인, 이점, 균형들에 대해서 이해할 수 있도록 해준다.
Level Zero :
-...
HTTP Status Code
Http Status Code 분류
1. Informational Codes :
- 서버가 요청을 받아 들였으나 아직 끝나지 않은 상태를 의미한다.
- 100 번대 코드
2. Success Codes :
- 요청을 성공적으로 수신했고 처리 했음을 의미한다.
- 200 번대...
Spring Boot Part01
Spring Boot
- Spring Boot의 주요 feature
1. Spring Boot starters
- Spring Boot starters는 하나의 dependency로 필요한 많은 공통의 의존성을 모아놓은 것이다.
- Maven이나 Gradle에서 간단히 추가해서 사용할 수 있다.
2. Autoconfiguration
...
피드 구독하기:
글 (Atom)