본문 바로가기

분류 전체보기270

[Spring Boot] 주로 사용되는 Junit Test 본 내용은 백기선님의 스프링 부트 개념과 활용 영상을 보고 정리한 내용입니다. spring-boot-starter-test 의존성 추가 webEnvironment 옵션 Mock : mock servlet environment. 내장 톰캣 구동 x RANDOM_PORT, DEFINED_PORT : 내장 톰캣 사용 NONE : 서블릿 환경 제공 X @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) @AutoConfigureMockMvc //MockMvc 를 주입받는 다양한 방법 중 하나 public class SampleControllerTest { @Autowired MockMvc .. 2019. 12. 27.
[Spring Boot] 로깅 퍼사드 VS 로거 본 내용은 백기선님의 스프링 부트 개념과 활용 강의를 보며 정리한 내용입니다. 로깅 퍼사드 vs 로거 Commons Logging, SLF4j (로깅 퍼사드) - 로거 API를 추상화 한 인터페이스 JUL, Log4j2, Logback (로거) 스프링 부트는 Commons Logging 를 사용 스프링 개발 당시 SLF4j가 없어서 하지만 최종적으로 Logback(SLF4j의 구현체) 으로 찍히게 된다. 스프링 부트 로깅 --debug (일부 핵심 라이브러리만 디버깅 모드로) --trace (전부 다 디버깅 모드로) 컬러 출력 : spring.output.ansi.enabled 파일 출력 : logging.file or logging.path 로그 레벨 조정 :logging.level.패키지 = 로그 레.. 2019. 12. 27.
[Spring Boot] SpringApplication.class 본 내용은 백기선님의 스프링부트 개념과 활용 강의를 보고 정리한 내용입니다. 스프링 부트 프로젝트를 생성하여 Application 클래스를 확인해보면 아래와 같은 구조를 확인 할 수 있다. 기존의 어플리케이션 클래스 public static void main(String[] args) { SpringApplication.run(InflearnApplication.class, args); } 하지만 이 구조는 스프링의 다양한 커스텀 기능을 쓰는데 제한적이다. 그래서 아래와 같이 구조를 살짝 바꿔줘야한다. 변경된 어플리케이션 클래스 public static void main(String[] args) { SpringApplication app = new SpringApplication(InflearnAppl.. 2019. 12. 25.
[Spring Boot] @SpringBootApplication 본 내용은 백기선님의 스프링부트 개념과 활용 강의를 보고 정리한 내용입니다. 스프링 부트 프로젝트 어플리케이션 클래스를 보면 @SpringBootApplication 어노테이션이 있다. @SpringBootApplication 3개의 어노테이션을 가진다. @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 이중에 @ComponentScan과 @EnableAutoConfiguration 가 중요하다. 왜 중요하냐면 Bean 이 @ComponentScan과 @EnableAutoConfiguration에 의해 두 단계로 나눠서 읽히기 때문이다. @ComponentScan @Configuration, @Repository, @Controller, .. 2019. 12. 25.
[Spring] Constructor Injection 방식을 권장하는 이유 요즘 아무 생각 없이 의존성 주입을 @Autowired를 사용한 필드 주입 방식으로 작성하다보니, 인텔리제이에서 경고메시지를 보여줬다. Field injection is not recommended .. Always use constructor based dependency injection in your beans 또한 백기선님의 스프링 부트 강의를 듣고있었는데 단일 생성자이며, 그 생성자의 파라미터가 빈일경우 스프링이 생성자를 자동으로 주입해준다고하였다. @Autowired를 사용하지 않아도 된다. public class Member { private final ProductService productService; public Member(ProductService productService) { .. 2019. 12. 25.
[프로그래머스] 베스트앨범 (level3) java 주말 + 평일 틈틈이 풀었음에도 꼬박 일주일이나 걸렸다.. 질문으로 도움까지 요청하며 정말 겨우 해결했다. 문제는 링크로 대체. // 요구사항 정리 // 1. 가장 많이 재생된 장르를 찾는다 // 2. 같은 장르의 노래중 재생 횟수가 높은 노래가 먼저 재생된다. // 3. 재생횟수가 같은 경우에는 인덱스가 낮은 노래가 먼저 재생된다. public int[] solution(String[] genres, int[] plays) { int[] answer = {}; Map topPlay = new HashMap(); Map firstSong = new HashMap(); Map countList = null; int genLength = genres.length; for(int i=0; i 2019. 12. 17.