전체 글 89

싸피인 인터뷰 2편 - 11기 고승희님

지난달 첫 번째 인터뷰에 이어 두 번째 인터뷰를 진행하게 됐다. 이번 인터뷰이는 역시 같은 반의 고승희 님이다. 특히 승희님은 싸피셜로도 함께 활동하고 있고, 평소 기록에 관심이 많은 것 같아 보여서 궁금한 점들이 있었다. 풀스택을 지향하긴 하지만 백엔드를 중점으로 배우게 되는 싸피 과정에 프론트엔드 경험을 가지고 입과 하시기도 해서 요즘 어떤 생각과 고민을 하고 계신지 궁금해 인터뷰를 요청드렸다. 평소 개인적으로 어떻게 기록을 하고 있나요? 싸피 수업에서 배운 내용은 보통 노션에 기록하는 것 같아요. 환경 설정하는 방법까지도 최대한 적어 놓으려고 노력해요. 왜냐면 나중에 집 가서 혼자 하려고 하면 어렵거든요. 제가 사소한 거 많이 적어놓으니까 친구들이 뭐 기억 안나는 거 있으면 와서 물어보는데 제가 뭐..

기록/SSAFYcial 2024.03.26

삼성 SW 역량 테스트 B형 취득 후기

며칠 전 3월 9일 싸피 대전캠퍼스에서 응시했던 삼성 SW 역량 테스트 B형 검정에서 합격했다는 메일을 받았다.B형 취득이라는 게 크다면 크고 작다면 작은 성과이겠지만, 개인적으로는 의미가 있는 이벤트여서 기록을 해두고 싶었다. 삼성 SW 역량 테스트란먼저 삼성 SW 역량 테스트란 삼성 전자에서 수시로 시행하는 코딩테스트로, 개인적으로 응시하기 위해서는 아래의 SW Expert Academy에서 접수할 수 있는 것으로 알고 있다. 나는 싸피를 이수하고 있기 때문에 싸피에서 단체로 시험을 응시할 수 있었다.역량 테스트는 A(Advanced), B(Professional), C(Expert) 의 3개 등급으로 구분된다. 전공반의 경우 A/A+형 취득이 2학기로 넘어가기 위한 조건이기에 1학기 수강생들에게 3..

기록/SSAFYcial 2024.03.24

싸피인 인터뷰 1편 - 11기 김민지님

싸피의 기자단인 싸피셜은 월에 자율 기사와 기획 기사를 각 1편씩 작성하게 된다. 1학기 기획 기사 주제를 뭘로 할지 고민하다가 뛰어난 주변 동기분들을 보며 저분들은 어떤 노력을 해왔고 어떤 강점을 가지고 있을까 궁금해져 한 달에 한 분씩 인터뷰를 진행해보기로 했다. 그리하야 첫 번째 인터뷰이는 11기 대전 6반 김민지님이다. 중앙 통로를 사이에 두긴 하지만 첫 달에 민지님과 같은 행에 앉게 되었는데 강사님과 주변 사람들에게 누구보다 열심히 물어보고 고민하며 열정적으로 학습하는 것을 보면서 굉장히 적극적이고 열정적인 사람이구나 하는 생각을 했었다. github 팔로우를 하게되면서 구경한 프로필 README에 적힌 '열정적인 시간을 좋아합니다' 라는 소개 문구를 보며 적극성이 자신의 장점임을 잘 알고 활용..

기록/SSAFYcial 2024.02.28

AWS 프리티어 종료 그 후..

작년 말에 배포했던 프로젝트 '플랭고' 의 AWS 프리티어가 2024년 1월을 마지막으로 종료되었다. AWS 프리티어란 아래와 같이 EC2, S3, RDS 등등 AWS의 주요 서비스들을 최초 가입 후 1년간 (일정 사양/용량에 한하여) 무료로 사용할 수 있게 제공해 주는 것을 말한다.사실 친절한 AWS는 이미 몇달 전부터 나에게 메일로 너 프리티어 곧 끝나니깐 조심해 라고 알려주었지만 1월에 싸피가 시작되고 정신이 없던 와중이라 그냥 한 달만 냅둬보고 감당 안 되면 이사 가지 뭐~ 라고 생각 합리화 를 하게 되었다. 그렇게 2월이 시작되고 평화롭게 싸피 생활을 하고 있던 나에게 한 통의 메일이 날아오는데?! 네?! 한 달에 한 만 원 내외로 나오면 그냥 사용할까 싶었는데 세상에 일주일 만에 34,000원..

기록/SSAFYcial 2024.02.18

자바 Collector 구조 (feat. groupingBy() 사용법)

Collectors의 groupingBy() 메서드를 사용하면 아래와 같이 데이터 스트림을 맵으로 편리하게 반환할 수 있어서 프로젝트나 알고리즘 문제를 풀 때 종종 사용했었다. 그런데 쓸 때마다 groupingBy() 메서드의 API 문서를 보며 아 이렇게 쓰는 거였지 하고 그대로 따라 치곤 했다. public class GroupingByTest { @Getter static class Person { private final int age; private final String name; public Person(int age, String name) { this.age = age; this.name = name; } } public static void main(String[] args) { Lis..

개발 공부/Java 2024.01.14

2023년 회고

벌써 2023년이 몇 시간 안 남았다. 1년이 어떻게 갔는지 잘 모르겠다. 시간이 진짜 빠르다는 생각을 요즘 정말 많이 하는 것 같다. 며칠 전부터 올해를 돌아보며 그래도 열심히 했어! 아니야 난 너무 게을렀어 를 왔다 갔다 하며 ㅋㅋ 🥲 회고 쓰는 걸 미루고 있었다. 하지만 미뤄봤자 엄청난 글이 써지지 않는 걸 알기에.. 올해가 가기 전에 올해를 정리해보려고 한다. 졸업 올해 초에 졸업을 했다. 고졸 탈출~~ 과 동시에 어엿한 백수가 되었다. 학교 생활에 대해선 할 얘기가 많지만 정리하면 후회없이 열심히 살았다는 것이다. 전공 수업도 열심히 듣고 과제도 열심히 했다. 3학년 때는 거의 매일 울면서 타자를 치며 밤을 새웠던 기억이 난다 😂 그리고 운이 좋게도 수석으로 과를 졸업할 수 있게 되었다. 이걸 ..

2023 하반기 CJ올리브네트웍스 지원 후기

23년 9~11월 사이에 진행된 CJ올리브네트웍스의 신입 공채 경험을 정리했다. 백엔드 개발자로 취업 준비를 하며 사실상 처음으로 최종 면접까지 갔던 값진 경험이었다. 서류 서류 질문은 3가지였는데, 아래와 같았다. 1번과 2번은 어느 정도 기존에 생각해 온 대로 작성했는데 3번 아이디어 제안 항목에서 고민을 많이 했다. 나한테 가장 익숙한 CJ 계열사는 cgv라서 영화와 관련된 아이디어를 it 기술과 접목하여 작성했다. 다시 읽어보니 이게 무슨 말이지? 싶다 ㅎ.. 1차 면접 때 아이디어 관련해서도 질문을 받았었는데 대답할 때 조금 민망했다 ㅋㅋ 마지막 포트폴리오는 README가 작성된 프로젝트 레포가 있어서 해당 깃헙 레포 url을 제출했다. TEST 알고리즘 스터디를 마치고 타슈(대전의 공유 자전거..

테스트에서만 @Async 적용되지 않도록 하기

⭐️ 방법 매우 간단함 주의.. 문제 상황 알림 발송 로직을 비동기로 처리하고 테스트를 수행하려니 아래와 같이 알림 발송을 검증하는 테스트가 깨지는 문제가 생겼다. 원인은 비동기 메서드인 notificationService.send()가 완료되기 이전에 값이 생성되었는지를 검증하려고 했기 때문이다. 더 큰 문제로, 비단 알림 발송 자체를 검증하는 테스트 뿐만 아니라 다른 테스트에서도 해당 테스트가 수행하는 로직이 특정 작업을 마치고 알림 발송을 수행하는 경우 동일하게 비동기 로직이 수행되어 테스트가 깨지고 있었다. 그 예시로, 위의 경우 테스트 완료 후 수행하는 reset.sql 에서 알림 테이블을 지울 때 존재하지 않던 알림이 (비동기로 실행되어) 회원 테이블을 지울 때 존재하게 되는 상황이다. 때문에..

[플랭고] 프로젝트 앱스토어 / 플레이스토어 배포 회고

올해 여름부터 개발해 왔던 장소기반 일정관리 서비스 '플랭고'를 드디어 앱스토어와 플레이스토어에 배포했다! 처음에 생각했던 것보다는 이런저런 일 때문에 늦어졌지만 올해 안에 개발 시작부터 배포까지 한 사이클을 완료할 수 있어 굉장히 의미 있는 경험이었다. 비슷한 상황의 누군가에게 조금이라도 도움이 되었으면 좋겠다는 마음을 담아 개발 시작 단계부터 배포 과정까지 기억나는 일들을 정리해 봤다. 플랭고가 궁금하시다면 아래 링크에서 다운받아 사용해 보실 수 있습니다! :) AppStore 링크 / PlayStore 링크 프로젝트 시작 계기 이 행운의 프로젝트는 대전의 한 해커톤에서 시작되어… 사실 플랭고는 작년 가을 교내 앱 개발 해커톤인 '콜라톤'에서 시작된 프로젝트다. 2022년 9월부터 약 두 달간 팀원 ..

[플랭고] 주요/부가 로직 트랜잭션 분리하기 - TransactionalEventListener와 REQUIRES_NEW

플랭고는 친구와 함께 일정을 수정하고 장소를 추가하는 등 일정 공유 기능을 제공한다. 이때 새로운 일정에 초대되거나, 일정 초대를 수락/거절하거나 공유 중인 일정이 수정되는 등의 상황에 알림(자체 알림 목록 + 푸시)이 발송되도록 기능을 구현해두었다. 기존에 알림을 발송하는 흐름은 다음과 같다. 먼저 일정 서비스에서 알림을 발송해야 하는 경우에 알림 DTO를 만들어 알림 서비스를 호출한다. 그러면 알림 서비스는 알림을 생성하고 외부 서비스인 FCM을 통해 대상 회원의 기기로 푸시 알림을 보낸다. 이러한 흐름으로 알림을 발송하면 위 그림처럼 일정 -> 알림 -> 외부 서비스를 거치는 흐름 전체가 하나의 트랜잭션으로 묶이게 된다. 이런 식으로 코드를 구현하면 크게 다음과 같은 문제가 생길 수 있다고 생각했다..