전체 글 562

99클럽 코테 스터디 TIL 5일차

오늘의 학습 키워드 : 우선순위 큐, PriorityQueue// 기본형: 우선순위가 낮은 숫자가 먼저 나옴 (작은 숫자)PriorityQueue pQ = new PriorityQueue();// 우선순위가 높은 숫자가 먼저 나옴 (큰 숫자)PriorityQueue pQ = new PriorityQueue(Collections.reverseOrder()); add() : 우선순위 큐에 원소를 추가, 큐가 꽉 찬 경우 에러offer() : 우선순위 큐에 원소를 추가. 값 추가 실패 시 falsepoll() : 우선순위 큐에서 첫 번째 값을 반환 제거, 비어있으면 nullremove() : 첫 번째 값 반환하고 제거, 비어있으면 에러isEmpty() : 첫번째 값 반환하고 제거, 비어있으면 에러clear(..

카테고리 없음 2024.05.24

99클럽 코테 스터디 TIL 4일차

오늘의 학습 키워드 : mapMap의 특징Map은 선언 시 로 값을 넣음Key와 Value는 한 쌍으로 Key로 식별, Value에 사용할 값을 넣는 식Key는 중복 불가, 동일한 Key 값을 넎으면 최근에 넣은 값이 적용  Map의 주요 메소드Map 안에 값 넣기 Map.put(key, value);Map 안의 값 가져오기 Map.get(key);Map 크기 확인Map.size();Map 안의 내용 변경Map.replace(key, value);Map 안에 특정 Key, Value 들었는지 확인Map.containsKey(key);Map.containsValue(value);Map의 크기가 0인지 확인Map.isEmpty();Map 안의 내용 삭제Map.remove(key);Key가 있으면 Value..

카테고리 없음 2024.05.23

99클럽 코테 스터디 TIL 3일차

오늘의 학습 키워드 : stack, Stream API map 메서드stack -> LIFO(Last In First Out) 구조로 마지막에 들어간 값이 제일 처음 출력되는 방식후입선출이라고도 하고 단방향 입출력 구조로서 깊이우선탐색(DFS)에서도 쓰인다.재귀 함수의 동작 흐름과 같은 구조를 가짐stack 메서드push() - 값을 스택에 추가 peek() - 스택의 마지막 요소 반환(스택이 비어있는데 peek() 메서드 호출 하면 NoSuchElementException 예외 터짐) pop() - 스택의 마지막 요소 제거하고 해당 값 반환 empty() - 스택이 비어있는지 여부 판단 - 비어있으면 true, 아니면 false를 반환 search() - 메서드의 인자를 스택에서 검색하고 해당 위치 ..

카테고리 없음 2024.05.22

99클럽 코테 스터디 TIL 2일차

오늘의 학습 키워드 : HashMap1. HashMap : 데이터 저장할 때 key와 value가 짝을 이루어 저장, 데이터를 저장할 때 Key값으로 해시함수 실행한 결과를 통해 저장위치 결정.2. HashMap은 특정 데이터의 저장위치를 해시함수를 통해서 바로 알 수 있고 데이터 추가, 삭제, 검색이 빠름3. HashMap은 Key 값을 통해서만 검색이 가능, HashMap의 Key값은 중복될 수 없고, Value 값은 Key 값이 다르다면 중복이 가능.  HashMap 메서드데이터 저장1. V put(K key, V value) : key와 value를 저장.2. void putAll(Map m) : Map m의 데이터를 전부 저장3. V putIfAbsent(K key, V value) : 기존 ..

항해 플러스 2024.05.21

99클럽 코테 스터디 TIL 1일차

오늘의 학습 키워드 : 중복 제거, HashSet HashSet 학습HashSet은 Set의 인터페이스 구현 클래스. 그래서 Set의 성질을 그대로 상속받는다. Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있다. 그리고 저장 순서가 유지되지 않는다.요소의 저장 순서를 유지해야 한다면 LinkedHashSet(JDK 1.4 부터 제공) Set 인터페이스를 구현한 클래스는 HashSet과 TreeSet이 있다HashSet의 경우 정렬을 해주지 않고 / TreeSet의 경우 자동정렬 해준다.Set의 가장 큰 장점, 중복을 자동으로 제거 HashSet은 객체를 저장하기 전 객체의 hashCode() 메소드를 호출하고 해시 코드 얻은다음 저장되어 있는 객체드르이 해시 코드와 비교하고..

카테고리 없음 2024.05.20

백엔드 4기 WIL 제출

문제 이번 주차를 지나며 겪었던 문제가 무엇이었나요?책임 분리를 통한 애플리케이션 설계 챕터에서 다루었던 Application Event, Kafka 비동기 메세지 통신을 통한 책임 분리 파트등에 대한 코드작업이 어려웠다. 트랜잭션 변경로직을 어떻게 구성할지와 비동기 상태는 어떻게 적용할지에 대해 고민하는 중에 있다.  시도 문제를 해결하기 위해 어떤 시도를 하셨나요?발제 자료를 더 깊게 학습  해결 문제를 어떻게 해결하셨나요?-  알게된 것 문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?비즈니스 로직과 트랜잭션의 범위에 대한 여러가지 문제 상황 Case애플리케이션 이벤트를 통한 관심사를 분리 상황에서 검증,재고 차감, 주문, 결제 등 많은 관심사에 대한 구분 방법(EventPublish..

항해 플러스 2024.05.18

[백엔드 4기] 9주차 팀별 회고 노트

### 1. 문제 **(과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)**이번 주차를 지나며 겪었던 문제가 무엇이었나요?이커머스 프로젝트에 유저 포인트 사용/충전에 대해서 History를 남기고, 인덱스 고려등을 많이 하지 않은거 같아서 조금 어려운 부분이 있었습니다. ### **2. 시도**문제를 해결하기 위해 어떤 시도를 하셨나요?시도라기 보다는 주문아이템 테이블에 대해서 orderId를 이용해서 인덱스를 걸거나, 사용자 포인트 사용/충전에 대해서 History를 남기는 것을 차주에 진행해야 할 거 같습니다. ### **3. 해결**문제를 어떻게 해결하셨나요?- ### **4. 알게된 것**문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?DB 조회 쿼리 성능 개선을 위해 Index..

항해 플러스 2024.05.11

[백엔드 4기] 8주차 팀별 회고 노트

이번 주차를 지나며 겪었던 문제가 무엇이었나요?=> 동시성 문제를 이해하고 각 이슈에 대해서 적절한 동시성 문제를 분석하고 반영하는데 조금 어려움이 있었다. 문제를 해결하기 위해 어떤 시도를 하셨나요?=> DB락(낙관적 락, 비관적 락), Redis 분산락 등 다양한 해결방법을 찾아보고 학습하였다. 문제를 어떻게 해결하셨나요?=> DB, 분산락 등 여러가지 방법등을 학습하고 프로젝트에 반영   문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?=> 레디스를 활용한 분산락 방식에 여러가지 방식이 있다는 것을 파악하였고 프로젝트에 적용하려고 시도 이번 주를 마무리 하며 나에게 만족했던 부분은 무엇인가요?=> 레디스등 분산 락 적용시 락 획득과 트랜잭션의 순서 중요성을 배우는데 스스로 많은 도움이 ..

항해 플러스 2024.05.04

[백엔드 4기] 7주차 팀별 회고 노트

[WIL 작성 키워드] 문제 이번 주차를 지나며 겪었던 문제가 무엇이었나요?CI / CD 과정에서 CI 과정에 집중하고 CD 과정은 대체로 진행을 하지 않았습니다.그리고 CI 과정에서 빌드 뿐 아니라 lint, coverage ( jacoco ) 등 다른 장치를 포함시키는 과정을 진행하지 않아 차후에 천천히 진행해야 할 거 같습니다. 시도 문제를 해결하기 위해 어떤 시도를 하셨나요?Github Action에 대해 자세히 공부하고 연동되는 여러가지 내용을 반영하면서 CI에 대해 제대로 다루어 보는 시간을 따로 가져야 할 거 같습니다. 그리고 추후에 AWS ECR / ECS 등등 여러 콘솔을 다루면서 CI / CD 통합과정을 제대로 해보는 과정을 진행할 예정입니다. 해결 문제를 어떻게 해결하셨나요?- 알게된..

항해 플러스 2024.04.27

[백엔드 4기] 6주차 팀별 회고 노트

KPT 중심의 회고록(WIL)을 작성합니다. Keep : 현재 만족하고 계속 유지할 부분 코드를 작성하고 부족한 부분은 다른 조원들의 깃허브를 참고하고 피드백 받는 과정을 계속해서 유지하고 싶습니다. 그리고 저녁 멘토링 시간 때 코치님들과 다른 조원들은 어떻게 진행해가고 있는지를 공유하고 파악해나가면서 이 부분을 이어나가고 싶습니다. Problem : 개선이 필요하다고 생각하는 문제점 API 구현 및 테스트 및 해야할 todo list를 계속해서 미루는 과정을 고쳐야 할 거 같습니다.. 그리고 TDD를 하는 과정에서 테스트 코드를 먼저 작성하고 API 구현을 넘어가야 하는데 api 구현을 먼저하고 테스트 코드를 작성하는 과정이 생겨서 한 일관성 있는 방식을 정해놓고 앞으로 남은 과제를 진행해야 할 거 같..

항해 플러스 2024.04.20