본문 바로가기

분류 전체보기

(249)
[스프링 부트 개념과 활용] 테스트 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 세팅 테스팅에 들어가기 앞서, Controller 와 Service 클래스를 미리 정의해놓자. // SampleController.java @RestController public class SampleController { @Autowired private SampleService sampleService; @GetMapping("/hello") public String hello() { return "hello " + sampleService.getName(); } } // SampleService.java @Service public class SampleService { public String..
[스프링 부트 개념과 활용] 로깅 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 로깅 작업 1) 스프링5 부터 변경 사항 스프링 내 기본적인 로그 개념과 로거 종류는 이전에 포스팅한 [부스트코스 웹 프로그래밍] 로깅 참고하면 된다. 스프링5 부터 달라진 사항이 있다. 이전에는 pom.xml 에서 Commons Logging 을 exclusion 한 뒤, logback 을 로거로 붙여줘야 했다. 그런데 스프링 5부터는 내부에서 알아서 logback 으로 찍어준다. 대략 다음과 같은 플로우임. Commons Logging(Spring 내장) -> SLF4j or Log4j2 - Logback그래서 스프링5 부터는 그냥 써도 Logback 으로 찍히기 때문에, 별도의 설정이 필요없다. ..
[스프링 부트 개념과 활용] Profile 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. Profile 설정 Profile 은 어떤 특정환 환경에 설정 값을 다르게 하고싶을 때 사용한다. 각 Profile 들은 각각 다른 설정 값이나 각각 Bean 들을 정의한다. 그 후, 빌드 할 때, 원하는 Profile 에 맞춰 빌드할 수 있다. 예를 들어, 테스트 환경과 배포 환경을 다르게 두고 Profile 을 설정할 수 있다. 1) Profile 정의 예를 들어, 각기 다른 설정 값을 담는 두 개의 Configuration 클래스를 정의해보자. @Profile("name") 을 통해 Profile 을 정의한다. // BaseConfiguration.java @Profile("production")..
[스프링 부트 개념과 활용] 외부 설정 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 외부 설정 사용하기 Properties resources 디렉토리 안에 있는 application.properties 파일에 키 = 값 형태로 일종의 설정 값들을 따로 구분하여 저장해놓을 수 있다. 이를 코드에서는 @Value("${key}") 로 가져올 수 있다. 예를 들면 다음과 같다. // application.properties heumsi.name = heumsi // SampleRunner.java @Value("${heumsi.name}") private String name; // name 에 heumsi 가 바인딩 됨. ... Environment Environment 객체를 가져와 ...
[스프링 부트 개념과 활용] SpringApplication 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. SpringApplication 실행 어플리케이션 실행 방법은 다음과 같은 방법이 있다. 먼저 가장 간단한 방법 @SpringBootApplication public class SpringinitApplication { public static void main(String[] args) { SpringApplication.run(SpringinitApplication.class, args); } } 조금 더 커스터마이징 할 수 있는 방법 @SpringBootApplication public class SpringinitApplication { public static void main(Str..
[스프링 부트 개념과 활용] 내장 웹서버 이해와 .JAR 생성 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 내장 웹 서버 이해 스프링 부트는 서버가 아니다. 스프링 부트의 자동 설정에, 톰캣의 설정과 구동이 포함되어 있다. 외부 라이브러리로 포함된 org.springframework.boot.autoconfigure.web.servlet 에서 ServletWebServerFactoryAutoConfiguration.java 를 열어보면, ... @Import({ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class, EmbeddedTomcat.class, EmbeddedJetty.class, EmbeddedUndertow..
[스프링 부트 개념과 활용] 의존성 관리, 자동 설정 이해 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 의존성 관리 1) pom.xml 에서의 parent pom.xml 내부를 살펴보면, 다음과 같은 부분이 있다. org.springframework.boot spring-boot-starter-parent 2.2.4.RELEASE spring-boot-starter-parent 는 스프링 프레임워크가 제공해주는 것으로, 여기에 활용할 수 있는 많은 라이브러리 정보가 '이미' 담겨져 있다. 정확히는 spring-boot-starter-parent 가 dependency 로 들어오는 외부 라이브러리들의 버전 및 각 라이브러리들의 의존성을 관리한다. 어떻게 관리하냐면, spring-boot-start..
Word2Vec 과 Doc2Vec 1. W2V (Word2Vec) 개념 2013년 구글 연구팀이 발표한 단어 임베딩 모델이다. 주변에 있는 단어들끼리 코사인 유사도가 높도록 임베딩한다. 방법 기본적으로, 주위에 있는 단어들을 예측하는 과정에서 각 단어 벡터가 학습된다. 예측하는 방법에는 CBOW 와 Skip-gram 두 방식이 있다. CBOW 주위에 있는 단어들을 가지고 중간에 위치하는 하나의 단어를 예측한다. Skip-gram 중간에 위치하는 하나의 단어를 가지고 주위에 있는 단어를 예측한다. 일반적으로 Skip-gram 이 학습 데이터가 더 많아서 CBOW 보다 임베딩 품질이 더 우수하다. Skip-gram 에서 학습 데이터를 구축하는 방법은 다음과 같다. 형태소 분석이 끝난 문장 코퍼스(단어 단위로 띄어쓰기가 되어있는 글 모음)가 ..