본문 바로가기

전체 글54

[Project] 멀티 모듈을 왜 쓸까? (멀티 모듈 도입 전) 서론 IT 연합동아리 DND에 참가하게 되어서 새로운 사이드 프로젝트를 진행하게 되었습니다. 백엔드는 2명으로 이루어져 있는데, 소통을 하다보니 자연스럽게 이번 프로젝트에 대해 고민하게 되었습니다. 이번 프로젝트로 얻어가는 것으로 두가지 주제가 있었는데 하나는 멀티 모듈, 나머지 하나는 TDD 였습니다 ! 이번 글에서는 멀티 모듈에 대해 얘기해 보려고 합니다. 모듈은 무엇인가? Oracle Java 문서에서 모듈이란 패키지의 한단계 위의 집합체이며, 관련된 패키지와 리소스의 재사용할 수 있는 그룹이라고 정의하고 있습니다. 이때 각 모듈은 독립적으로 개발, 빌드, 테스트, 배포가 가능합니다. 멀티 모듈 멀티 모듈 프로젝트는 상호 연결된 여러 개의 모듈로 구성된 프로젝트를 의미합니다. 즉 멀티 모듈 단일 프.. 2024. 1. 15.
[회고] 2023년을 돌아보며.. (23년 회고) 23년에 많은 일들이 있었지만 기억에 남는 대표적인 일들을 적어보려 합니다. CS Study (23.01 ~ 23.08) github : https://github.com/wonslee/CS-study 저는 3학년 때 컴퓨터SW 학과를 복수전공을 하기 시작했었습니다. 복수전공 특성상 들어야 하는 과목이 많아서 시간표에 맞으면 무조건 들어야했습니다. 그러다보니 1,2 학년 과목을 듣지않고 3학년 과목을 들어야하는 상황이 발생했습니다.. 처음부터 심화된 과목을 수강하다보니 이해력이 부족할 수 밖에 없었습니다. 그래서 같이 복수전공 하는 형과 CS 지식을 따로 먼저 공부해야겠다고 해서 만들어진게 CS study입니다 ! 처음엔 둘이서 시작했지만, 사람이 더 많으면 좋겠다 싶어서 에브리타임에서 두 명을 더 모집.. 2023. 12. 31.
[Project] google Oauth2 로그인 시 refreshToken을 받는 방법 (최초 로그인에서 저장을 못했을 때) 서론 tincle이라는 프로젝트를 진행 중에 일어난 일입니다. 1차 MVP에서는 google과 kakao의 회원가입 기능만 개발하기로 해서 회원가입 기능만 개발했었습니다. 1차를 완료한 후 2차 개발이 시작되었는데, 2차에서 플레이스토어 배포를 위해 회원 탈퇴기능을 구현해야 했습니다. 그 과정에서 최초 google 로그인에서 refreshToken을 저장하지 못했을 때 다시 발급 받는 과정에 어려움이 있어 다른 누군가에게 도움이 되기 위해 이 글을 적습니다. google 로그인과 회원 탈퇴 로직 보기(Java/Spring) -> https://github.com/DoDream-dev/Tinqle-Server/blob/develop/src/main/java/tinqle/tinqleServer/domain/.. 2023. 11. 29.
[Project] Redis(Elasticache Redis)로 RefreshToken을 관리하기 서론 팅클(Tincle)이라는 프로젝트에서 JWT를 통해 프론트와 소통을 했는데, 이 프로젝트는 친구기반 SNS 서비스입니다. 만약 사용하게 된다면 한번 접속할 때 '짧은 시간이 아닌 긴 시간동안 머무르지 않을까?' 판단했습니다. 때문에 토큰 재발급하는 횟수가 많다고 생각했습니다. 그에 따른 시간 비용을 줄이고자 Redis로 RefreshToken을 관리한 경험을 얘기하려 합니다. 데이터베이스가 있는데 왜 Redis를 사용할까? Redis는 인메모리 캐시로 메모리에서 데이터를 처리합니다. Client가 필요로 하는 정보가 만약 DB에 존재하게 된다면 Disk 영역까지 가야하기 때문에 시간이 오래 걸리게 됩니다. 반면 Redis에 정보가 존재하게 된다면 Memory 영역에서 처리 후, 값을 반환하게 되어 .. 2023. 11. 25.
YAPP 23기 백엔드 서류 합격과 아쉬운 면접 탈락 회고 YAPP디자이너, PM, 개발자가 팀을 이뤄 프로젝트를 진행하는 기업형 IT 연합 동아리 입니다.PM 직군이 있는 연합동아리는 흔치 않고, 규모가 큰 동아리라 인기있는 IT 동아리 중 하나입니다.해커톤, 스터디 등 많은 활동을 하는 동아리입니다.1년에 2번 모집합니다 !지원 동기주변 사람들이 IT 연합 동아리에 들어가면 실력 향상을 기대할 수 있고, 의지를 가진 사람들이 모여 프로젝트를 4~6개월 정도 진행하기 때문에 지원했습니다.또한 YAPP은 현직자들도 지원할 수 있기 때문에 그들이 가진 스킬을 보고싶어서 지원했습니다. 1차 서류서류 문항은 다음과 같았습니다.YAPP에 지원하게 된 동기를 포함하여 자유롭게 자기소개를 해 주세요. (500자)프로젝트를 진행할 때 어떤 방식으로 팀원과 소통하는 지 경험을.. 2023. 10. 18.
[Java] 랜덤 문자열 생성, 랜덤 코드 생성(random값) 서론 팅클이라는 프로젝트를 진행하면서 각 계정마다 random 코드 6자리를 만들어야하는 상황이 있었습니다. 이 random 코드는 친구추가할 때 사용되는 목적입니다. 구상 저는 랜덤값을 만들 때, 사용자들끼리 무조건 겹치면 안된다는 조건이 붙으니까 겹칠 확률을 무조건 높여야 겠다고 생각했습니다. 처음에는 대중적으로 알려진 UUID.randomUUID를 쓰면 되겠지라고 간단하게 생각했었습니다. 하지만 예상과는 다르게 UUID.randomUUID는 알파벳 대문자도 없을 뿐더러 6자리까지 자른다고해도 자리당 36개의 가짓수 즉 60,466,176분의 1 확률로 생성이 됩니다. random uuid 만드는 것 치고는 확률이 너무 낮았습니다. 자리수를 늘리는 방법도 있었지만, 친구추가 코드이기 때문에 짧으면 짧.. 2023. 9. 17.