일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 일급컬렉션
- 변경감지
- Spring
- privateapi
- 다형성
- 항해99 9기
- 정적중첩클래스
- 서버사이드렌더링
- 지네릭스
- DI
- github actions
- 항해99
- 스파르타코딩클럽
- 싱글톤패턴
- 더티채킹
- IoC
- 9기
- java
- 스프링컨테이너
- publicapi
- 인프콘
- 클라이언트사이드렌더링
- refreshtoken
- 자바의정석
- 인수테스트
- 애너테이션
- 비정적중첩클래스
- Velog
- SOLID
- bean
- Today
- Total
목록전체 글 (39)
멈재

AttributeConverter를 찾아보게 된 배경은 최근 프로젝트에서 YN 필드를 두어 삭제 시 UPDATE 하는 방법을 고민해보라는 것에서 시작되었다. 이름에도 쓰여있듯 어떤 변환을 위한 용도로 사용되고, 나로서는 단순히 가독성을 높이기 위함이었지만 주로 다음과 같은 상황에서 사용이 된다고 한다. 1. JPA가 지원하지 않는 타입을 매핑하는 경우 2. 두 개 이상의 속성을 갖는 밸류 타입을 한 개 칼럼으로 매핑하는 경우 참고: https://gunju-ko.github.io/jpa/2020/11/14/AttributeConverter.html 결론적으로, 내가 원했던 건 엔티티에서는 Boolean 타입으로 true / false 값을 저장하고 싶었고, DB에는 Y / N 형태로 저장하고 싶었다. 분..

면접 예상 질문에 Java Map의 내부 구현이 어떻게 이루어져있는지 추측해보라는 항목을 보게 돼서 복습할 겸 스터디에서 발표했었던 HashSet의 동작 원리에 대해서 다뤄보려 한다. 그때 당시 발표를 준비하게 된 건 다름 아닌 어떤 분의 포스팅을 보고 나서였다. https://www.blog.ecsimsw.com/entry/%EC%9E%91%EC%84%B1-%EC%A4%91-%EC%9E%90%EB%B0%94-HashSet%EC%9D%98-%EC%9B%90%EB%A6%AC 자바 깊이 알기 / HashSet의 원리 HashSet의 출력이 고정된 것 같아 (@조엘) 우아한테크코스에서 함께 공부하는 친구가 좋은 대화 주제를 찾아주었다. 어느날 찾아와서는 HashSet의 순서에도 뭔가 규칙이 있을 것 같다는 얘..

전체 코드 https://github.com/ahn-sj/java-custom-box/tree/main/src/main/java/ohdodok/custom/collections/list GitHub - ahn-sj/java-custom-box: Implementing a Java embedded API. I want to know the operating principles of Java in detail. Implementing a Java embedded API. I want to know the operating principles of Java in detail. - GitHub - ahn-sj/java-custom-box: Implementing a Java embedded API. I want..
여러 디자인 패턴을 들어보긴 했지만, CQS 패턴은 나에게는 다소 생소한 패턴 중 하나이다. 디자인 패턴은 프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인 상의 문제를 정리해서, 상황에 따라 간편하게 적용해서 쓸 수 있는 패턴 형태로 만든 것이다. - 헤드퍼스트 디자인 패턴 中 - 시간적 여유가 난다면 가장 먼저 다루고 싶었던 것이 바로 이 CQS 패턴이었다. 김영한 님의 스프링 로드맵에서 가끔 "커맨드와 쿼리를 분리시켜라."는 말을 들었는데, 그것이 바로 이 CQS 패턴을 말한 것이었다. 참고: https://www.inflearn.com/questions/27795/cqrs CQRS - 인프런 | 질문 & 답변 안녕하세요. 정말 좋은 강의 항상 잘 듣고 있습니다. Repository save 메..

일급 컬렉션 일급 컬렉션이란 Collection을 Wrapping하면서, Wrapping한 Collection 외 다른 멤버 변수가 없는 상태를 말한다. ....롸..? 뭐라고요..? 코드 예시 // 일급 컬렉션 적용 전 class Person { private String name; private Cars cars; } class Car { private String name; private String oil; } // 일급 컬렉션 적용 후 class Person { private String name; private Cars cars; // private List cars; } // 일급 컬렉션 // List cars를 Wrapping class Cars { // 멤버 변수는 한 개만 존재해야 한다..

MVC 패턴이 나오게 된 배경 기존에 Servlet과 JSP으로 개발할 당시, Servlet으로 개발할 때는 뷰(View)화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여서 지저분하고 복잡하고, JSP로 개발할 때는 절반은 비지니스 로직이고, 나머지 절반은 HTML로 보여주기 위한 뷰 영역이었다. 이후에 MVC Model 1이 적용되면서 서블릿이나 JSP로 처리하던 것을 서블릿을 컨트롤러로 사용하고, JSP를 뷰로 사용해서 컨트롤러 / 뷰 라는 영역으로 역할을 나누었다. 그러나, MVC Model 1은 컨트롤러에 비지니스 로직을 두었지만 이렇게 되면 컨트롤러가 너무 많은 역할을 담당하게 되었고, 몇 가지 단점들도 존재하게 되었다. 1. MVC Model 1의 단점1 - ViewPath와 포워드 중복..

0. DI? IoC? Bean? Spring프레임워크에서 빼놓을 수 없는 용어이고 처음 입문하는 사람에게는 이만큼 어려운 게 없을 것이다. 의존성 주입...? 빈..? 스프링 컨테이너..? 너무 어려운데 그냥 new로 생성하면 안 되나...? 내가 처음 Spring을 접했을 때 가졌던 물음표였다. 그래서 내가 누군가에게 DI & IoC & Bean에 대해 설명할 기회가 생긴다면 '왜' 이것이 핵심 원리가 된 것이고 사람들이 열광하는지에 대한 근본적인 원인부터 설명해줘야겠다는 생각을 했다. 이번 1편에서는 어떤 문제가 있는지 알아보고, 2편에서 DI & IoC & Bean에 대해 다뤄볼 생각이다. 1. 다형성 2. SOLID 원칙 3. 싱글톤 패턴 JAVA를 한 번쯤은 시작해본 사람은 다형성과 SOLID ..

출발 일어나자마자 휴대폰을 봤더니 인프런으로부터 메시지가 와있었다. 그리고 여유부리다가 기차 출발시간이 11시 4분이었는데 대전역에 11시에 도착해버려서 내림과 동시에 바로 뛰어서 무사히 탔다.. 😅 12시즈음에 수서역에 도착한다음 강남 6번 버스를 타고 코엑스로 곧장 달려갔다. 코엑스는 첫 방문이라 촌놈티 내면서 서울 풍경을 눈에 담아두려고 열심히 두리번댔다. 행사장에 입장하자마자 등록테스크에서 네임택, 리플렛, 티셔츠를 수령하고 시작전에 부스를 돌아보려했지만 사람이 너무 많아서 도망쳤다(?) 시작0. 오프닝시작은 인프랩의 CEO이신 이형주 님이 인프콘을 주최하게 된 계기와 소개로 시작되었다. 이후에는 CTO이신 향로 님이 'Learn Share and Grow'라는 슬로건을 가지고 인프런의 취지와 2..

학습 주제 SSR(Server-Side Rendering) & MPA(Multi-Page Application) CSR(Client-Side Rendering) & SPA(Single-Page Application) MPA(Multi-Page Application)란? 말 그대로, 여러 페이지로 구성된 웹 어플리케이션 사용자의 클릭과 같이 인터렉션이 발생할 때마다 서버로부터 새로운 HTML을 받아와서, 해당 링크로 이동하여 페이지 전체를 새로 렌더링하는 전통적인 웹 페이지 구성 방식 쉽게 말해서, 기존의 웹서비스는 링크(앵커 )를 클릭하면 해당 페이지로 이동 덧붙여서 설명하자면, 앵커 태그에 명시되어 있는 자원(일반적으로 html)을 서버에 요청하고, 응답으로 받은 내용을 브라우저에 표현하게 된다. 이런..