전체 글158 Spring - @Autowired를 권장하지 않는 이유 스프링에서 의존성을 주입하는 방법은 생성자 주입, @Autowired 를 사용하는 필드 주입, 수정자 주입이 있다. 생성자 주입(Constructor Injection) 스프링 프레임워크 4.3 버전부터는 의존성 주입으로부터 클래스를 완벽하게 분리할 수 있다. 단일 생성자인 경우엔 어노테이션조차 필요 없지만 생성자가 2개 이상인 경우에는 생성자에 어노테이션을 붙여줘야 한다. 필드 주입(Field Injection) 필드에 @Autowired 어노테이션을 붙여주면 자동으로 의존성이 주입된다. 수정자 주입(Setter Injecion) 수정자를 이용한 주입 방법도 있다. 보통은 setter 메서드를 사용해서 주입한다. 생성자 주입 방법만의 장점 순환 참조를 방지할 수 있다. 테스트에 용이하다. 코드 속 나쁜.. 2022. 5. 12. kafka 아는 척 하기(정리 실패) https://www.youtube.com/watch?v=0Ssx7jJJADI&list=WL&index=4&t=1s https://www.youtube.com/watch?v=geMtm17ofPY&list=WL&index=27 https://www.youtube.com/watch?v=xqrIDHbGjOY&list=WL&index=27 카프카란? 분산 이벤트 스트리밍 플랫폼이다. 카프카를 사용하려면 크게 4개의 구성 요소. 첫번째는 카프카 클러스터다. 메시지를 저장하는 저장소입니다. 하나의 카프카 클러스터는 여러 개의 브로커로 구성이 된다. 브로커는 각각의 서버 역할을 하는데, 메시지를 나눠서 저장하고, 이중화 처리도 하고, 장애가 나면 대체도 하는 등의 역할을 한다. 주키퍼 클러스터가 카프카 클러스터를 관.. 2022. 5. 11. CQRS 아는 척 하기 https://www.youtube.com/watch?v=xf0kXMTFJm8 https://www.youtube.com/watch?v=H1IF3BUeFb8 최범균님의 유튜브를 보면서 공부해 본 내용이다. CQRS는 Command Query Responsibility Segregation의 약자입니다. Command(명령) - 시스템 데이터 변경 - 주문 취소, 배송 완료(주문 데이터를 변경함) Query(쿼리) - 시스템 데이터 조회 - 주문 목록 조회 Responsibility(책임) - 구성 요소의 역할 - 구성 요소 (모델) - 클래스, 함수 - 모듈/패키지 - 웹서버/DB Segregation(분리) - 역할에 따라 구성 요소 나누기 CQRS를 정리해보자면 명령 역할을 수행하는 구성 요소와 쿼리.. 2022. 4. 14. Chrome(Mac) 단축키 새 창 열기 - [⌘ + n] 새 탭을 열어 이동 - [⌘ + t] 특정 탭으로 이동 - [⌘ + 1~8] 마지막 탭으로 이동 - [⌘ + 9] 이전 페이지 - [⌘ + '[' ] or [ ⌘ + ←] 현재 탭 또는 팝업 닫기 - [⌘ + w] 현재 창 닫기 - [⌘ + shift + w] 창 최소화 - [⌘ + m] 크롬 숨기기 - [⌘ + h] 크롬 종료 - [⌘ + q] 새 창 열기 ⌘ + n 새 탭을 열어 이동 ⌘ + t 특정 탭으로 이동 ⌘ + 1~8 마지막 탭으로 이동 ⌘ + 9 이전 페이지 ⌘ + [ 또는 ⌘ + ← 현재 탭 또는 팝업 닫기 ⌘ + w 현재 창 닫기 ⌘ + shift + w 창 최소화 ⌘ + m 크롬 숨기기 ⌘ + h 크롬 종료 ⌘ + q 개발자 도구 열기 ⌘ + F12 화면.. 2022. 4. 8. Intellij - Refactorings Rename - [shift + f6] 변수 이름 수정, getter와 setter 같은 메서드의 이름도 수정할것인지 물어보는 팝업 나옴. Extract variable - [cmd + option + v] i+1 같은 표현식에 드래그하고 사용하면 변수로 추출 가능 Refactoring menu - [ctrl + t] 해당 변수를 어떻게 리팩토링 할지 보여줌 example 1. parameter로 선택시 함수의 인자로 추출 2. inline variable(iv)로 선택시 or [cmd + option + n] 변수를 인라인으로 추가하고 변수 삭제. 3. introduct constant(ic)로 선택시 상수로 추출 2022. 4. 5. Intellij - Code completion Postfix Completion - [. after parenthesis] 괄호 뒤에 '.'을 타이핑하면 if, else, return, assert 같은 리스트를 추천해준다. Completion with tab - [ctrl + space, tab] ctrl + space로 올 수 있는 상수들의 리스트를 볼 수 있고 tab을 눌러 해당 상수로 수정 가능 2022. 4. 5. Wrapper Class vs Primitive Type https://www.differencebetween.com/difference-between-wrapper-class-and-vs-primitive-type-in-java/ Difference Between Wrapper Class and Primitive Type in Java | Compare the Difference Between Similar Terms Key Difference - Wrapper Class vs Primitive Type in Java Java is a popular programming language that is used to develop various applications. One advanta www.differencebetween.com 이 글의 해석본이다. 데.. 2022. 3. 29. NGINX란 무엇인가? NGINX는 웹서버이며 리버스 프록시, 로드밸런서, 그리고 Http cache로도 쓰일 수 있는소프트웨어입니다.요청에 응답하기 위해 이벤트 기반 구조를 채택했습니다. 아파치 서버C10K(Connection 10000 Problem)동시 연결 수가 많아지면 서버가 커넥션을 형성하지 못함. (하드웨어가 아닌 소프트웨어가 문제)아파치 서버의 구조상 Connection 형성시마다 Process를 생성해서 메모리 부족으로 이어진다. CPU 부하 UP.-> 수많은 동시 커넥션을 감당하기엔 아파치 서버가 적합하지 않았다. 아파치는 커넥션당 프로세스 생성아파치는 확장성이 좋은만큼 무거움 처음에는 아파치 앞 단에 nginx를 두는 방식을 위해 nginx를 만듦nginx도 웹서버이기때문에 정적파일은 직접 처리하고, 동적.. 2022. 3. 24. Spring - RestTemplate RestTeamplate은 스프링 3부터 지원하는 HTTP 요청을 수행하기 위한 동기식 클라이언트다. 필드(Field) - logger 생성자(Constructor) - RestTemplate() 기본 세팅으로 RestTemplate 인스턴스를 만든다. - RestTemplate(ClientHttpRequestFactory requestFactroy) ClientHttpRequestFactory에 기반해서 인스턴스를 만든다. - RestTemplate(List uriVariables) - T getForObject(String url, Class responseType, Object... uriVariables) - T getForObject(String url, Class responseType) 주어.. 2022. 3. 11. Intellij - Editor basics Expand and shrink the code selection - [option + ↑ or. option + ↓] 선택된 코드 범위를 점점 올려준다(낮춰준다) Comment line - [cmd + '/'] 한 줄, 또는 드래그한 범위를 주석 on/off 시킨다. Duplicate lines - [cmd + D] 현재 라인 or 드래그한 라인 복사 Delete lines - [cmd + Backspace] 현재 라인 제거 Move code fragments - [option + shift + ↑ or. option + shift + ↓] 현재 라인의 코드 통째로 라인 이동 Move the whole method up down - [cmd + shift + ↑ or. cmd + shift + ↓] 메.. 2022. 3. 10. 이전 1 2 3 4 5 6 7 ··· 16 다음