전체 글

전체 글

    2020 카카오 블라인드 프로그래머스 - 길 찾기 게임

    https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ..

    ENUM 에 대해 알아보자

    enum Animal{ RABBIT, CAMEL, TIGER } 이것들은 class Animal{ public static final animal RABBIT= new animal(); public static final animal CAMEL= new animal(); public static final animal TIGER= new animal(); private animal(){} } 와 같다. 상수타입을 자바5 버전에 들어서 enum을 추가한 것이다. 생성자가 private이다. 이것은 클래스 animal를 인스턴스화 하지 못하게끔 의도한 것이다. enum은 클래스이기 때문에 생성자를 가질 수 있다. enum Animal{ RABBIT, CAMEL, TIGER; Animal(){ System.o..

    스프링 시큐리티 denied Page 404 뜨는 이유

    원래라면 accessDeniedPage는 403 에러가 떠야하는데, 404에러가 뜰 때가 있다. 이 때에는 큰 착각을 했을 것이다. .exceptionHandling().acce4ssDeniedPage("/user_denied") 이렇게 해두면 usr_denied.html 로 가는게 아니라 저곳으로 get 보내기 때문에 착각하지말자 컨트롤러에 @GetMapping("/user_denied") 해놓고 return 으로 적절한 html 로 보내자. 이것을 찾지못하고 있기 때문에 404 에러가 뜨게된다.

    Spring Data JPA, Querydsl 조금 정리

    Spring Data JPA, Querydsl 조금 정리

    스프링 데이터 JPA 조회 결과가 많거나 없으면 List findByUsername(String name); //컬렉션 Member findByUsername(String name); //단건 Optional findByUsername(String name);; //단건 Optional 컬렉션: 결과 없음: 빈 컬렉션 반환 단건 조회: 결과 없음: null 반환 결과가 2건 이상: javax.persistence.NonUniqueResultException 예외 발생 * 단건으로 지정한 메서드를 호출 시에 JPQL의 Query.getSingleResult() 메서드를 호출하는데, 이 메서드를 호출했을 때 조회 결과가 없으면 javax.persistence.NoResultException 예외가 발생하게 ..

    java final static 붙이는 이유, lombok 어노테이션

    https://djkeh.github.io/articles/Why-should-final-member-variables-be-conventionally-static-in-Java-kor/ 왜 자바에서 final 멤버 변수는 관례적으로 static을 붙일까? 자바 final, static 키워드와 코딩 best practice 되짚어보기 djkeh.github.io https://www.daleseo.com/lombok-popular-annotations/ [자바] 자주 사용되는 Lombok 어노테이션 Engineering Blog by Dale Seo www.daleseo.com

    자바 동적 파라미터화 코드 전달하기

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple apple : result) { if ("GREEN".equals(apple.getColor())) { result.add(apple); } } return ..

    부트 이것저것...

    부트 이것저것...

    member.address? 에서 ? 는 null 이면 그냥 비워두게끔 하는 것이다. 타임리프에 대해서 좀 알아둬야할 필요가 있을 것 같다. ModelAttribute 의 개념도 더 정확히 알아야한다. getmapping에 나오는 경우를 처음봐서 당황스러웠다. 그리고 merge 가 아니라 dirtychecking 형식으로 진행해야 한다. merge 하면 없는 컬럼들이 null로 들어가게되어서 문제가 생긴다.

    부트와 이것 저것 (RequiredArgsConstructor ...)

    부트와 이것 저것 (RequiredArgsConstructor ...)

    spring boot로 어플리케이션을 하나 만들고 있는데, 이전의 명칭 dao 는 repository로 쓰인다. 조회하는 것 같은 읽는 것은 Transactional 후에 readOnly를 달아두면 성능이 좋은데, 위처럼 MemberService는 1개 빼고 다 이와 같은 케이스여서 그냥 위에 readOnly=true를 달아두고, 읽는 것이 아닐 때에는 그냥 Transactional 를 달아서 차별하였다. default값이 false이기 때문에 가능하다. 저기 위의 사진과 다르게 위의 사진은 setter에 autowired를 해주었다. 저기 위의 사진은 memberrepository 값을 바꾸고 싶어도 못바꾸기 때문에 다음과 같이 사용한 것이다. 하지만, setter는 위험하다. 그래서 다음과 같이 생성..