본문 바로가기

분류 전체보기204

[Spring] 컴포넌트 탐색, 의존관계 주입과 서비스 로케이터 스프링 애플리케이션에서 빈을 등록하는 방식은 두 가지로 나눌 수 있다. 빈으로 등록될 클래스의 물리적 위치와 무관하게, 환경설정 클래스에서 직접 하나하나 빈으로 등록하기 그냥 빈의 존재를 플래그로 표시하기만 하고, 나머지는 스프링이 컴포넌트 탐색(Component Scanning)을 통해 자동으로 빈을 찾아내 등록하게 하기. 스프링 애플리케이션이 실행되면 모든 빈은 애플리케이션 컨텍스트(Application Context)에 등록된다. 스프링 애플리케이션에서는 의존관계 주입(DI, Dependency Injection)을 사용한다. 의존관계 주입 개념이 없던 2000년대 초반에는 서비스 로케이터(Service Locator) 패턴을 사용해서 서비스를 식별 가능한 어떤 주소와 함께 등록하고, 그 주소를 통.. 2023. 3. 7.
토이 팀 프로젝트 회의 결과(12/14~ 2/15) 보호되어 있는 글 입니다. 2023. 3. 6.
[백준] 12015번: 가장 긴 증가하는 부분 수열 2 | C++ 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 정답코드 C++의 lower_bound, upper_bound C++에서는 이진탐색으로 원소를 탐색하는 lower_bound, upper_bound 메서드를 제공한다. lower_bound : 찾으려는 key 값보다 같거나 큰 숫자가 등장하는 인덱스를 반환한다. upper_bound : 찾으려는 key 값을 초과하는 숫자가가 등장하는 인덱스를 반환한다. int arr[]={0,1,2,3,4,5,5,5,6,7}; lower_bound(arr.begin(), arr... 2023. 2. 23.
[서평/23-13] 개발자를 위한 글쓰기 가이드: 예제로 배우는 테크니컬 라이팅 핵심 비법 독서기간_2023년 1월 27일 저자_유영경 출간일_2021년 2월 26일 그냥 재밌어 보이길래 빌렸다. 내용도 단순해 보이고 간결하게 딱딱 쓰여있는 게 개발자 안성맞춤이라 생각됐다.(???) 읽어본 후기로 가볍게 읽고 짚고 넘어가기 좋다. 읽으면서 지금까지 썼던 글들은 이 항목들에 맞게 썼었나 되돌아보는 기회도 가질 수 있다. 테크니컬 문서뿐만 아니라 일상에서 소통할 때, UI 개발할 때 도움이 될 것 같다. 그야말로 독자(청자)가 누구인지에 따라 글을 쓰는(말을 하는) 계획이 달라지기에. '검토' 챕터는 특히 도움이 된다. 번역투, 은어, 이중부정 등 아름다운 한국어 사용을 위해서 인지하고 있으면 좋다! 이과생치고 맞춤법에 조예가 깊고 글을 좀 쓴다라는 자부심이 있다. 뭐 내가 얼마나 글을 써봤나 싶.. 2023. 2. 21.
TDD 테스트 주도 개발 Test Driven Development 1. TDD의 주된 이익 코드를 깨끗하게 유지하도록 치열하게 싸우지 않으면 시스템은 점점 퇴화한다. 코드를 재빠르게 추가할 수는 있지만 처음에는 good code 라기보다는 not so great code 일 가능성이 높다. TDD를 잘 따른다면 구현하는 실질적인 모든 사례에 대해 단위테스트를 작성하게 된다. 단위 테스트는 코드를 지속적으로 발전시킬 수 있는 자유를 준다. 작성하려는 코드가 있다면 항상 먼저 어떻게 그 코드를 테스트할지 고민해야 한다. 작성할 코드를 묘사하는 테스트를 설계해야 한다. 이러한 역 방향 접근법은 단위 테스트 전략의 핵심이다. 2. 단순하게 시작 TDD는 세 부분의 사이클로 구성된다. - 실패하는 테스트 코드 작성하기 - 테스트 통과시.. 2023. 2. 19.
[Spring Boot] 애플리케이션 배포하기 다루는 내용 - WAR 파일 배포 - 클라우드에 배포 애플리케이션 서버에 배포하기 WAR 파일 생성하기 war 파일 생성 후 톰캣 등 서버에 올려서 사용한다. java -jar build/libs/readingList-0.0.1-SNAPSHOT.war 클라우드에 배포하기 PaaS 클라우드를 이용해 배포를 한다. 가장 유명한 플랫폼인 '클라우드 파운드리'와 '헤로쿠'에 배포할 것이다. 가 책의 내용이지만... 요즘 트렌드와 거리가 먼 것 같아서 가볍게 읽고 넘어간다. 도커를 안 쓸 때인가 아무튼 배포 라인은 따로 공부할 예정이다. 2023. 2. 18.
[Spring Boot] 액추에이터로 내부 들여다보기 - 2 다루는 내용 - 액추에이터 원격 셸에 접속하기 - 액추에이터 보안 원격 셸을 이용해 접속하기(DEPRECATED) 엔드포인트를 이용한 방법 말고도 원격 셸을 이용하면 작동 중인 애플리케이션의 내부를 알 수 있다. 스프링 부트는 CRaSH를 내장하고 있는데 이 셸은 어떤 자바 애플리케이션에서든 내장할 수 있다. 또 스프링 부트는 액추에이터의 엔드포인트와 거의 동일한 기능을 스프링 부트에 특화된 명령으로 제공하려고 CRaSH를 확장했다. 쩝... 대략 18년 이후부터 deprecated 되었나보다. 이런 방법이 있었다~ 액추에이터 사용자화하기 엔드포인트 ID 변경하기 management: endpoints: shutdown: id: kill 엔드포인트 활성화/비활성화하기 management: endpoint.. 2023. 2. 17.
코드 테스트에 관한 약어(FIRST, Right-BICEP, CORRECT) FIRST : 좋은 테스트 조건이란? [F]ast 테스트는 빠르게 동작해야 한다. 느린 것에 의존하는 코드를 최소화하자. [I]solated 직접적 혹은 간접적으로 테스트 코드와 상호 작용하는 코드가 많을수록 문제가 발생할 소지가 늘어난다. 다른 단위 테스트에 의존하지 않는 결합도를 낮은 테스트 코드를 작성하자. 각 테스트가 작은 양의 동작에만 집중하면 독립적인 테스트 코드로 유지하기 쉽다. 테스트 코드에도 단일 책임 원칙을 적용하자. 테스트 메서드가 하나 이상의 이유로 깨진다면 테스트를 분할하는 것을 고려하자. [R]epeatable 테스트는 실행할 때마다 결과가 같아야 한다. 반복 가능한 테스트를 만들려면 직접 통제할 수 없는 외부 환경에 있는 항목들과 최대한 격리시켜야 한다. [S]elf-valid.. 2023. 2. 16.