본문 바로가기

전체 글

(25)
[이펙티브 자바] 2장. 객체 생성과 파괴 (아이템 1, 2, 3) 정리 해당 내용은 책 내용을 그대로 정리하기보다는 책을 읽고 제가 이해한 내용을 바탕으로 작성했습니다. 틀린 내용이 있다면 댓글로 제보해주세요. 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라장점 1) 이름을 가질 수 있다 생성자를 이용한 객체 생성public class Member { private String name; private boolean isAdmin; // 생성자 public Member(String name, boolean isAdmin) { this.name = name; this.isAdmin = isAdmin; } // 다른 메서드들...}// 객체 생성Member regularMember = new Member("Jisu..
[🏝️ 구름톤] 구름톤 in Jeju 10기 3-4일차 참가 후기 (우수상🏅) 1-2일차 후기는 위 링크에서 볼 수 있다. 1. 3일차1) 본격적인 개발 시작전 날 새벽 4시에 자고 8시쯤에 다시 해커톤 장소로 돌아와 본격적인 개발을 시작했다. 우리가 진행하는 프로젝트는 플로깅 서비스로 필요한 서버에서 개발해야 하는 API는 총 5개였고 그중 주요 API는 다음과 같다.사용자의 플로깅 기록 등록 API플로깅 기록 조회 API쓰레기가 존재하는 가까운 바다 조회 API특히 사용자의 플로깅 기록을 등록할 때, 위도와 경도 정보뿐만 아니라 쓰레기를 주운 위치도 따로 구분을 해줘야 했기에 어떻게 개발을 하는 게 서버가 안 터지고 잘 동작할 수 있을지를 고민했다.  결론적으로는 위와 같은 ERD가 나왔고 아쉽지만 시간 상의 문제로 프론트에서 사용자가 플로깅을 마친 시점에 전체 좌표 정보들을 ..
[🏝️ 구름톤] 구름톤 in Jeju 10기 1-2일차 참가 후기 (우수상🏅) 지원 및 선발 후기는 위 링크에서 볼 수 있다. 구름톤은 5/21~5/24에 진행되었으며, 첫 날 오전에 구름스퀘어에 모여야 해서 전 날 미리 제주에 도착했다. 첫 날에 과제도 주어지기 때문에 차라리 급박하게 당일에 도착하는 것보다는 전 날 미리 도착해서 참여하는 걸 추천한다. 👍 구름톤 10기의 전체 일정은 아래 타임테이블과 같다. 1. 1일차1) 아이스브레이킹 & SELF PR 첫 날은 구름스퀘어에 모여서 1간단한 자기소개를 하는 시간과 크램폴린 IDE 실습/GDS 강의 및 실습 시간, 강의를 듣는 시간을 가졌다. 입장하자마자 이름표와 티셔츠를 포함한 카카오 굿즈를 받았다. 귀여운 하르방이 그려진 티셔츠는 2일차부터 입으면 된다. 굿즈로는 카카오 선풍기를 받았는데 나중에 안 거지만 쿨링 기능이 있어서..
[🏝️ 구름톤] 구름톤 in Jeju 10기 지원 및 선발 후기 1. 구름톤이란 구름톤은 카카오와 구름 기업에서 진행하는 해커톤으로 제주에서 3박4일 간 몰입해서 결과물을 만들어내는 해커톤이다.자세한 내용은 이 사이트에서 확인할 수 있다. 구름톤은 총 30명이 선발되며, 각 팀은 디자이너 1명, 기획 1명, 프론트 2명, 백엔드 1명으로 구성된다.사실 구름톤을 3기 정도때부터 알고있었지만 만약에 구름톤에 선발되면 2박 3일 간, 혼자 API 개발 + 배포까지 다 수행해야했기에 자신이 없어 지원을 미루다가 이제 지금쯤이면 가능하지 않을까 싶어 지원을 했다. 굳이 제주도까지 가서 해커톤에 참여하나라는 생각이 들 수도 있고, 실제로 이번 10기에 선발되면서 그런 소리를 듣기도 했다. 하지만, 기업에서 주관하는 해커톤인만큼, 그곳에서 제공하는 교육(특히 크램폴린 배포)과 체..
[Spring] Redis 캐시를 통해 조회 성능 개선하기 디프만 동아리에서 진행 중인 프로젝트 Bibbi(https://github.com/depromeet/14th-team5-BE)에서는 조회 기능이 많이 사용됩니다. 특히 사용자마다 여러 번 조회하는 API들이 존재하는데 아직은 크게 문제가 없지만 사용자 수가 늘어나 매번 DB까지 도달해 읽어오게 되면 성능적인 이슈가 발생할 수 밖에 없습니다. 저는 이런 기능의 성능을 개선하기 위해 Redis 캐싱 기능을 이용하기로 했습니다. Bibbi에서는 조회는 빈번히 발생하지만 수정은 거의 발생하지 않는 값을 캐시로 적용했습니다. 1. 프로젝트 내에서 Redis 설정하기 본 내용은 Redis가 구축되어 있다는 전제 하에 진행됩니다. (Redis 구축하기) 1) RedisConfig build.gradle depende..
[Test] 단위 테스트 vs 통합 테스트 vs 인수 테스트 이전부터 진행해온 [모카콩]에서는 단위 테스트와 인수 테스트를 작성하고 최근에 시작한 [Bibbi]에서는 단위 테스트와 통합 테스트를 작성하고 있습니다. 테스트 코드를 작성하면서 이 세 가지 유형의 테스트들이 필요한 이유, 목적을 정확히 파악하는 것이 중요하다 생각하여 해당 글에서 정리하겠습니다. 1. 단위 테스트 단위 테스트는 시스템에서 논리적으로 분리될 수 있는 가장 작은 코드인 단위를 테스트하는 방법이다. 소프트웨어 테스트는 코드 품질을 보장하는 데 도움이 되며 개발의 필수 요소라 할 수 있습니다. 소프트웨어를 작은 기능적 단위로 작성한 다음 코드 단위별 단위 테스트를 작성하는 것이 소프트웨어 개발 모범 사례입니다. 먼저 단위 테스트를 코드로 작성한 다음, 코드를 변경할 때마다 테스트 코드를 자동으..
[Review] Green Developers 프로젝트 후기 - Bibbi 1. Bibbi 프로젝트 디프만 14기를 통해 Bibbi라는 가족 일상 공유 앱 프로젝트를 진행중입니다. Bibbi는 바쁜 일상 속에서 하루 한 번, 자신의 일상을 담은 사진을 찍어 공유합니다. 그리고 다른 가족이 공유한 일상 피드에 사용자의 이미지로 생성된 리얼 이모지나 댓글을 남기면서 가족과의 소통을 보다 쉽게 활성화할 수 있도록 돕는 앱입니다. 프로젝트 진행 과정은 아래 깃허브에서 볼 수 있으며 현재 iOS는 1차 MVP 기능까지 완료하여 앱스토어에 출시한 상태입니다. 🎉 Bibbi BackEnd GitHub: https://github.com/depromeet/14th-team5-BE Bibbi iOS GitHub: https://github.com/depromeet/14th-team5-iOS B..
[NCP] NCP Cloud DB for Redis 구축하기 디프만 동아리에서 진행하는 Bibbi 프로젝트에서 백엔드 팀원끼리 각자 도입하고 싶은 기술이 있다면 도입하자라고 의견을 나눴고 저는 다양한 새로운 기술 중 Redis를 도입하기로 결정했습니다. Redis를 도입하고자 한 이유는 여러가지가 있었지만 가장 큰 이유는 역시나 조회 API 성능을 높이고자 하기 때문이었습니다. 감사하게도 NCP에서 디프만 동아리에 무료 크레딧을 후원하기 때문에 NCP에 서버 환경을 구축하고 있는데 이번 레디스 또한 NCP에서 구축하고자 합니다. 1. Cloud DB for Redis (VPC/Simple) 생성하기 NCP에서는 VPC와 Classic 두가지 환경에서 서비스를 제공합니다. Bibbi 서버는 이미 VPC에 구축되어 있기때문에 저도 무난하게 Redis 또한, VPC로 ..