전체 글

전체 글

    Spring MVC Config 기초 정리

    Spring MVC Config 기초 정리 addViewControllers /** * 사용자가 "/"로 요청을 보냈을 때 hello.html이 응답되어야 함 * * WebMvcConfiguration의 addViewControllers 메서드로 설정하기 */ @Test void addViewControllers() { // when ExtractableResponse response = RestAssured .given().log().all() .when().get("/") .then().log().all().extract(); // then Assertions.assertThat(response.statusCode()).isEqualTo(HttpStatus.OK.value()); } @Configur..

    Spring CORE 기초 정리

    Spring CORE 기초 정리 @Component public class LineDao { } @Component가 붙으면 해당 클래스를 빈 등록해준다는 뜻이다. @Controller, @Service, @Repository 어노테이션 내부에는 모두 @Component를 포함하고 있다. @ComponentScan은 @Component가 붙은 클래스들을 읽어들여 빈 등록을 해준다. 보통 main 함수를 가지고 있는 클래스 위에 @SpringBootApplication를 달고있는데, 해당 어노테이션 내부에 @ComponentScan이 존재한다. 현재 디렉토리 위치에서부터 아래로 내려가면서 스캔을 하기 때문에 보통 @ComponentScan의 위치가 최상단에 존재하는 이유가 바로 이것이다. 의존관계 주입 방..

    Spring JDBC 기초 사용법 정리

    Spring JDBC 기초 사용법 정리 NamedParameterJdbcTemplate @Repository public class NamedParamDAO { private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public NamedParamDAO(NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } /** * MapSqlParameterSource * public T queryForObject(String sql, SqlParameterSource paramSource, Class..

    Spring MVC 기초 정리

    Spring MVC 기초 정리 매핑 요청 @RestController @RequestMapping("/http-method") public class HttpMethodController { @PostMapping("/users") public ResponseEntity createUser(@RequestBody User user) { Long id = 1L; return ResponseEntity.created(URI.create("/users/" + id)).build(); } @GetMapping("/users") public ResponseEntity showUser() { List users = Arrays.asList( new User("이름", "email"), new User("이름", "..

    우아한 테크코스 한 달 생활기

    우아한 테크코스 한 달 생활기 정신없이 과제를 수행하다 보니 한 달 반이나 지나있었다. 정신이 없었던 것이 아니라, 생각 없이 지내온 것이 아닐까 하는 의문이 들었다. 하루하루를 곱씹으면 시간이 잘 가지 않는다. 반면, 아무 생각 없이 지내면 하루가 쏜살같이 지나간다는 것을 살아오면서 배웠다. 괜히 지금까지의 생활을 잘 보냈는지에 대한 불안감이 생긴다. 무엇을 하며 시간을 보냈는가 미션을 진행하며 대부분의 시간을 보냈다. 페어와 함께일 때는 남는 저녁 시간에도 미션에 대해 고민했다. 페어와 깨지고 난 뒤에는 오직 오전과 낮에만 수행했다. 남은 저녁 시간에는 필독서와 미션을 진행하면서 생긴 의문점들을 찾아보고 정리했다. 나름 알차게 보낸 것 같은데 대체 어디서 불안감이 스멀스멀 올라오는 것일까? 내 생활 ..

    [Java] try-with-resources 에 대해

    try-with-resources 에 대해 try-with-resources 는 손쉽게 자원 할당을 해제할 수 있는 방법이다. 어떻게 사용하는지 바로 확인해보자. private static void printFile () throws IOException { try (FileInputStream input = new FileInputStream ( "file.txt")) { int 데이터 = input.read (); while (데이터! = -1) { System.out.print ((char) 데이터); 데이터 = input.read (); } } } 다음과 같이 사용한다. 기존의 try-catch-finally 였다면 finally 블록을 따로 만들어주고 그 부분에 close 메서드들을 호출했어야 ..

    [모던 자바 인 액션 스터디] 8장 컬렉션 API 개선

    8. 컬렉션 API 개선 Arrays.asList() 나 List.of 나 추가를 하려고 하면 UnsupportedOperationException이 발생하게된다. Set은 Set.of 로 생성한다. Map은 다음과 같이 2가지 방법이 있다. Map ageOfFriends = Map.of("Raphael", 30, "Olivia", 25); Map ageOfFriends = Map.ofEntries(entry("Raphael", 30), entry("Olivia", 25)); 자바 8에서는 List와 Set 인터페이스에 다음과 같은 메서드를 추가했다. removeIf : 프레디케이트를 만족하는 요소를 제거한다. List나 Set을 구현하거나 그 구현을 상속받은 모든 클래스에서 이용할 수 있다. repla..

    [모던 자바 인 액션 스터디] 7장 병렬 데이터 처리와 성능

    7장. 병렬 데이터 처리와 성능 컬렉션에 parallelStream을 호출하면 병렬 스트림이 생성된다. public long sequentialSum(long n) { return Stream.iterate(1L, i -> i + 1) .limit(n) .reduce(0L, Long::sum); } n이 커진다면 병렬로 처리하는 것이 좋을텐데 한 번 처리해보자. public long parallelSum(long n) { return Stream.iterate(1L, i -> i + 1) .limit(n) .parallel() .reduce(0L, Long::sum); } 순차 스트림에 parallel()메서드를 호출하면 기존의 함수형 리듀싱 연산이 병렬로 처리된다. 순차 스트림에 parallel()을 ..