분류 전체보기
-
java Immutable class카테고리 없음 2023. 4. 21. 15:27
오늘은 Immutable class에 대해서 알아보자. Immutable 클래스란 불변의 클래스를 말한다. 불변이라는 말은 변할수 없는 것을 말한다. 불변인 클래스가 좋은점은 객체가 안전하기 때문이다. java의 대표적인 불변 클래스 java의 대표적인 불변의 클래스는 String이다. String hi = "hi"; String wonwoo = hi.concat(" wonwoo"); System.out.println(wonwoo); 위의 코드는 변경하는 것으로 보이지만 실제로는 새로운 String을 리턴한다. String의 속성중 value를 변경하지는 않는다. 아래 코드는 String의 concat 메서드이다. 새로운 객체들 다시 만든다. public String concat(String str) {..
-
[spring-boot] 블로그를 만들자. (2) JPA카테고리 없음 2023. 4. 21. 15:27
블로그 만들기 두번째 시간이다. 오늘은 무엇을 할까 고민하다가 블로그니까 Post기준으로 점차 확대하는 방향으로 나가야겠다고 생각했다. 오늘은 JPA 이야기가 많은거 같아서 JPA라고 제목도 붙었다. 우리는 JPA라는 것을 사용할 것이다. JPA는 하나씩 하나씩 차근차근 보면 답이 없다. 왜냐하면 JPA또한 공부할게 많다. 아 JPA가 이런거구나 정도만 알면 성공한거다. 혹자들은 Spring만큼 공부할 양이 많다고 하니 책을 사서 공부하는 편이 낫다. 예제의 경우 아주 쉽게 나와 있지만 실무 프로젝트에선 그런 쉬운 로직이 많이 없다. 단지 예제일뿐이다. (물론 있긴 하지만) 그리고 또한 영속성 비영속성 준영속성 등등 기타 JPA 상태도 잘 알아야 한다. 아주 조금만 JPA에 대해서 살펴보자. JPA는 J..
-
[spring-boot] 블로그를 만들자 (1)카테고리 없음 2023. 4. 21. 15:27
거의 3주만에 글을 쓴다. 포스팅할 블로그를 만들고 있어서... 시간 날때 마다 잠깐 잠깐 만들었다. 원래는 마이크로서비스를 하려고 했는데 블로그를 먼저 하고 만든 블로그를 마이크로서비스로 할까 생각중이다. 일단 블로그 먼저 하고.. 아무튼 뭐 대단한건 아니고 심플한 블로그를 만들 예정이라. 일단 대충 만들어놔서 만든걸 바탕으로 다시 만들 예정이다. 그러면서 이상한 부분은 고치고... 오늘은 프로젝트를 만드는 정도로 일단 끝낼 것이다. 일주일에 한두번? 정도 쓰면 많이 쓰는거고 일주일에 한번 예상해본다. 블로그의 스펙과 간단한 설명을 보자. 제목에도 나와있듯이 Spring boot 1.4를 사용하고 Spring data jpa를 사용한다. 구현체는 당연히 hibernate를 사용할 것이다. 디비는 h2를..
-
java anonymous 와 lambda Closure 다른점카테고리 없음 2023. 4. 21. 15:27
우리는 저번에 자바의 Closure에 대해 살짝 맛봤다. 대충 어떤 느낌인지는 알 듯하다. 다시 잠깐 살펴보자. private static Function function() { int a = 100; return new Function() { @Override public Integer apply(String s) { return Integer.parseInt(s) * a; } }; } Function function = function(); Integer apply = function.apply("3"); System.out.println(apply); //아래는 람다 private static Function function(){ int a = 100; return s -> Integer.parse..
-
java anonymous class 의 final카테고리 없음 2023. 4. 21. 15:27
오랜만에 자바 이야기를 해볼라고 한다. 자바를 아직많이 공부해야 할 듯 하다. 모르는게 많다. spring도 spring이지만 자바를 알아야 뭘하지 않겠나 싶다. spring도 자바로 되어 있으니 말이다. 오늘 이야기 하고 싶은거는 java의 anonymous class는 final 이어야만 접근이 가능하다. (java8일 경우에는 lambda 도 해당된다.) 를 이야기 해볼것이다. final은 다 아시다시피 상수이다. 변하지 않는 값이다. 여기서는 값을 말한거지 레퍼런스(참조하고 있는 값)를 말한 것은 아니다. 즉 할당이 다시 되지 않는 것이지 참조하고 있는 변수들은 변경 가능하다. 간단하게 anonymous class 보자. void test() { int a = 0; Runnable runnable..
-
spring boot mybatis카테고리 없음 2023. 4. 21. 15:27
예전 si 할 때는 mybatis 를 많이 썼는데 요즘은 jpa 하이버네이트를 자주 쓰기에 별루 신경 쓰지 않았다. 나중에 혹시 쓸일이 있다면 쓰겠는데 그닥 쓸일은 없을 거 같지만... 그래도 혹시나 쓸일이 생기면 써야지.. Spring 에서는 지원하지 않고 mybatis가 만든 spring-boot-starter가 있다. 그걸 이용해서 사용하면 된다. 메이븐을 통해 디펜더시를 받자. org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1 저기 안에는 mybatis autoconfiguration 도 디펜더시 하고 있다. 그럼 한번 살펴보자. 일단 config부터 보자. package는 필자의 도메인 클래스 패키지를 넣어고 sql이 있는 mapper 경로도..
-
Spring Boot 1.4카테고리 없음 2023. 4. 21. 15:27
드디어 Spring Boot 1.4가 릴리즈 되었다. Spring boot 빌드 할때 보니까 거의 1시간이 걸린다. 테스트도 거의 5500개 정도? 어마어마하게 테스트 한다.. 몇가지만 알아보자. Log4j Log4j 1 은 더이상 지원하지 않는다. org.springframework.boot.logging 에서도 log4j가 사라졌고 아파치에서도 EOL(End-of-life) 처리 되었다. starter 변경 spring-boot-starter-ws 에서 spring-boot-starter-web-services로 변경되었다. spring-boot-starter-redis 에서 spring-boot-starter-data-redis로 변경되었다. 기존꺼는 향후(2.0)에서 제거될 예정이다. DataSo..
-
spring web HandlerMethodArgumentResolver카테고리 없음 2023. 4. 21. 15:27
오늘은 이것저것 하다가 늦게 집에 들어 왔지만 짧은 글이라 금방 할거 같다. 못하면 내일 해야지 오늘은 HandlerMethodArgumentResolver 인터페이스에 대해 알아보자. 나도 오늘 회사에서 일하다 알게 된 것이다. 왜 이제까지 이걸 몰랐지.. 아무튼 알아보자. 기준은 Spring boot이다. 마침 오늘 스프링부트 책이 왔는데 대충 넘겨보니 아는내용이 많지만 그래도 모르는 내용이나 잘못알고 있는 내용이 있을거 같아서 (영어도 못하는데 영문 문서로 힘들게 봐서...) 정독해서 읽어야 겠다. 서론이 너무 길었다. HandlerMethodArgumentResolver 인터페이스의 역할은 간단하다. 컨트롤러에서 파라미터를 바인딩 해주는 역할을한다. 예를들어 특정클래스나 특정 어노테이션등의 요청 ..