위 같은 오른쪽 메뉴의 아이콘이 안보이면? Settings > Appearance & Behavior > Appearance의 Tool Windows에서- Show tool window bars- Show tool window names를 체크해주면 된다.
https://www.jetbrains.com/ai-ides/buy/?utm_campaign=IU&utm_content=2025.1&utm_medium=link&utm_source=product§ion=personal&billing=monthly 사용하려는 AI 구독 상품을을 구매한다. settings > plugins에서 JetBrains AI Assistant와 JetBrains Junie를 설치한다.플러그인 설치 후 인텔리제이 라이센스가 등록된 계정으로 구매를 했고, 인증이 되어 있으면 자동으로 라이센스 활성화가 된다. 라이센스를 수동으로 Active하는 줄 알았는데, 알고 보니 AI Pro를 다른 계정으로 구매해서 안된거였다.(라이센스 수동 등록인 줄 알고 인텔리제이 상단 메뉴바의 He..
배경 https://www.youtube.com/watch?v=n-7tsMhum4g&ab_channel=%EC%A0%9C%EB%AF%B8%EB%8B%88%EC%9D%98%EA%B0%9C%EB%B0%9C%EC%8B%A4%EB%AC%B4 존경하는 개발자 재민님의 영상을 보던중 아래 댓글을 보았다 위 내용을 요약하자면게시판 정렬시 좋아요 수로 정렬을 할 경우 테이블간의 조인과 group by로 count를 구한다.데이터 규모가 적으면 문제 없지만 규모가 커질때는 성능 저하가 심해진다.또한, 상품 테이블에 XxxCount 필드를 추가하는건 데이터 정합성 등 여러 가지 문제점이 발생할 수 있다.이러한 경우 통계 테이블을 활용해서 페이징 처리를 할 수 있다. 네이버 쇼핑만 봐도 정렬 조건이 많다.테이블이 정규화 ..
퇴사 & 이직2024년, 나에게 가장 큰 사건 중 하나는 단연코 퇴사였다. 커리어 발전을 위해 새로운 도전을 결심하며 선퇴사를 선택했지만, 그 이후의 3개월은 쉽지 않은 시간이었다. 이직 준비 과정 속에서 겪었던 고생을 떠올리면 가끔 마음이 먹먹해지기도 한다. 하지만 그 시간을 견디며 단단해진 내가 있다는 사실에 위안을 얻는다. 이번 경험은 앞으로의 회사 생활을 어떻게 해야 할지 깊이 고민하는 계기가 되었고, 선퇴사는 다시는 하지 않겠다는 다짐을 하게 되었다. 면접에 합격했다는 소식을 들었던 순간은 아직도 생생하다. 다른 회사의 면접을 앞두고 있던 상황에서 지금 다니는 회사로부터 전화가 왔지만, 급히 받지 못했다. 그럼에도 직감적으로 합격 소식일 거라는 느낌이 들었고, 덕분에 당일 면접을 편안하게 볼 수..
자바, 코틀린 사용시 Object JSON 변환간에 ObjectMapper를 많이 사용한다. // Object -> JSONUser user = new User("John", 25);String json = objectMapper.writeValueAsString(user);// JSON -> ObjectUser user = objectMapper.readValue(json, User.class); 성능이 중요한 애플리케이션에서 ObjectMapper는 조심해서 사용해야 한다.왜냐하면 내부적으로 자바의 리플렉션을 사용하여 변환해주기 때문이다. 리플렉션이 안좋은 이유는 두가지 문제가 있다1. JIT(Just-In-Time) 컴파일러의 최적화를 제대로 활용할 수 없다.JIT 컴파일러는 실행 시간을 단축하기..
개요로컬 혹은 CI 서버에서 실제 운영 환경과 같은 디비를 사용하여 통합 테스트를 하고 싶어 TestContainers 설정을 적용했다.세부 설정은 docker-compose.yml로 관리하는게 편하여 이를 import하는 방식으로 구현했다. 환경스프링 부트 3.2.6Gradle 8.8자바 17 설정gradle에 라이브러리 추가ext { testcontainersVersion = "1.19.0"}dependencies { testImplementation "org.springframework.boot:spring-boot-testcontainers" testImplementation 'org.testcontainers:mysql' testImplementation 'org.sprin..
이번 4주차는 3주차에 만든 문서를 기반으로 콘서트 예약 서비스에 주어진 요구사항 개발을 시작한다 구현할 API는 크게 다섯가지가 있다.유저 토큰 발급 API예약 가능 날짜 / 좌석 API좌석 예약 요청 API잔액 충전 / 조회 API결제 API대기열을 하는 이유대기열을 하는 이유는 무엇일까?유량 제어를 하기 위함이다. 유량 제어를 하는 이유는 흐름을 제어하는 것을 의미한다.즉, 트래픽이 몰릴 경우를 대비하여 이를 제어하고 디비의 부하를 막는것이 목적이다. 부하의 종류는 읽기 부하와 쓰기 부하가 있고, 부하의 대상은 CPU, 메모리, 디스크가 있다.부하에 대해서도 생각을 해야 한다. 가령 메이플에서 몬스터를 때릴때마다 디비에 데이터를 삽입하면 디비의 쓰기 부하가 많을 것이다.그렇다면 메모리에 저장하고, ..
1~2주차는 TDD와 클린 아키텍처를 학습 하고 작은 요구사항을 구현하면서 익숙해지는 과정이였다.3주차가 본격적인 프로젝트의 시작이였다.장난감 프로젝트용 시나리오를 하나 선택한 뒤, 실제 대규모 서비스 회사에서 경험할 수 있는 일들인 동시성 처리, 메시지 큐, AWS 인프라 구축, 장애 대응 등 직접 체험하면서 점진적으로 고도화 해가는 과정을 경험할 수 있다. 3주차 과제는 다음과 같다.시나리오 선택 및 분석3~5주차 마일스톤 작성시퀀스 다이어그램 작성API 명세서 작성Mock API 작성ERD 설계서비스 시나리오 선택e-커머스 서비스와 콘서트 예약 서비스 두개가 있었다. e-커머스 서비스는 상품 주문 서비스를 구현하는 것이였다.Key Point는 주문에 대한 동시성 처리와 재고 관리였다. 콘서트 예약 ..