전체 글

전체 글

    [토이프로젝트] TS로 깃허브 README에 블로그 포스팅 자동 반영하기

    토이프로젝트 선정 GitHub를 경험한 개발자들은 Readme에 자신을 표현하고 홍보하기 위해 글이나 이메일, 블로그 등을 작성한 경험이 있을 것이다. 과거 내 소개글에는 기술 스택과 개인 블로그, 배지 등 글자로 꾸미는 방법으로 소개글을 작성했었는데, 이렇게 추가하는 방식은 잘 보이지도 않고 url을 방문하도록 유도하는 데도 효과적이지 않다.   그래서 깃허브 프로필을 어떻게 효과적으로 꾸밀지 고민하던 중, 소개글에 최신 블로그에 대한 대표이미지, 제목, 설명, 날짜 등으로 시각화하는 것을 목표로 잡았고 특정 시간에 새 글이 올라왔을 때 자동으로 갱신해주는 프로젝트가 있으면 좋을 것이라고 생각했다.  그래서 요즘 개인적으로 다루고 있는 TS 스택을 활용하여 매일 특정 시간에 GitHub Actions가..

    [협업프로젝트] Spring Data Elastic Search 설정 및 구현 회고 (1)

    서론협업 프로젝트를 진행하면서 검색 기능을 구현하는 단계에 들어섰다. 내가 초기 설계 단계에서 설정했던 대로 사용자의 편의성을 높이기 위해 검색 기능과 사용자별 검색 기록을 볼 수 있는 기능을 제공하기로 했으며, 초기 Figma UI를 구현하여 검색 관련 API를 설계 및 구현했다.초기에는 DB의 LIKE 기능을 이용해 '%키워드%'로 검색하고 사용자별 검색 기록을 저장해 관리하는 방식으로 충분하다고 생각했다. 하지만 추가 요구사항으로 실시간 검색어 및 일일 가장 인기 있는 장소 순위(검색어) 구현이 언급되면서 상황이 달라졌다.  추가 요구사항을 고려해보니, 처음에 계획했던 MySQL의 LIKE 기능을 이용한 '%키워드%' 검색 방식으로는 한계가 있었다. LIKE는 전체 데이터를 시간대별로 조회하는 풀 ..

    [Refactor] 리팩터링에 순서가 존재할까?

    완성된 프로젝트나 작성된 코드를객체지향 프로그래밍을 적용해서 리팩터링 하려 한다. 리팩터링을 진행하려고 할 때, 어디서부터 시작하여 마무리해야 할까?특별한 순서나 규칙, 절차는 존재하지 않는 것 같다. 하지만 리팩터링도 단계별로 적용하는 것이,유지보수가 쉬운 형태로 만들어 나갈 수 있다고 생각한다. 단계별 프로그래밍, 작은 단위부터 기능을 구현한 경험을 바탕으로리팩터링을 하기 전 점진적 단계를 구성해 보자. 단계별 프로그래밍 경험 + 리팩터링 단계 설정1. 코드 이해먼저 코드베이스를 깊게 이해하고 어떤 부분이 수정되어야 하는지 파악해야 한다.요구사항을 정확히 준수한다.README를 재검토한다.정상적인 경우, 예외적인 상황 정리2. 테스트 추가코드베이스에 예외 테스트가 부족하다면, 리팩터링 하기 전에 적절..

    [Java] EnumMap 정리

    토이프로젝트를 진행하며 EnumMap을 사용하는 다른 코드들을 보았다.기존에 나는 Enum을 사용할 때,Enum 내부에 변수를 추가하는 방식으로 사용하였었지만Enum 타입을 Map 구조로 다루는 방식과 목적에 대해서 궁금해졌다.따라서 EnumMap 구조와 장점 사용하는 방식에 대해서 알아보려고 한다. EnumMap이란?Java에서 특정 Enum 타입의 키를 사용하는 맵이다. (HashMap과 유사)특히 Enum 상수를 효율적으로 다룰 수 있도록 최적화된 구현을 제공한다.특징과 성능의 장점을 알아보자.특징Enum 타입만 key로 사용 가능한 특별한 Map이다.해싱 과정이 필요 없어 HashMap보다 빠르다.null을 key로 넣는 경우 NullPointerException 발생EnumMap은 내부적으로 배..

    [우테코] 프리코스 4주차 '크리스마스 프로모션' 미션 회고록

    4주 차 미션은 크리스마스 프로모션 으로이메일 형식의 요구사항이 전달되었습니다. 3주 차 미션과 동일한 학습 목표를 가졌고, 클래스 분리에 대해서 도움을 주는 예시와 요구사항이 추가 되었습니다.추가된 요구사항은 UI와 도메인 로직을 나눠서 생각할 수 있도록UI에 관한 클래스 예시였으며, 저는 도메인 분리에 초점을 맞춰야 한다는 생각이 들었습니다. 따라서 이번 미션에서는도메인을 분리하는 것에 조금 더 깊이 이해할 수 있도록 이 전 주차에서 어려움을 겪었던Java Enum 에 대해서 알아보는 것이 중요하다고 생각했습니다. 3주 차 미션에서 Enum 사용이 어려우셨다면저와 같이 Java Enum 어떻게 사용해야 하는지 글로 정리하는 것을 추천드립니다 👍 저는 자동차 경주 미션에 다음과 같은 요구사항을 추가하..