[자바와 JUnit을 활용한 실용주의 단위 테스트]를 읽고
·
독서
핵심 내용 요약단위테스트는 동작을 보장하고, 동작을 쉽게 이해하고, 코드 변경을 쉽게 할 수 있게 한다.좋은 테스트가 무엇인지(FIRST), 무엇을 테스트할 것인지(Right-BICEP)를 고민하고 테스트를 작성해야 한다.테스트와 설계, 리팩터링은 관련도가 높다. 리팩터링을 통해 코드를 깔끔하게 작성하면 테스트가 쉬워진다. 단위 테스트의 커버리지가 높으면 설계를 지속적으로 개선해 나가는 자신감을 키울 수 있다. 테스트 또한 리팩터링을 통해 이해를 높이고 유지 보수 비용을 최소화할 수 있다.테스트도 SRP가 중요하다. 관심사를 분리하고 의존성을 분리하자. 목, 스텁 등의 방식을 고려하여 의존성을 끊을 수 있다. 필요한 경우에는 통합 테스트를 작성하되, 단순하고 집중적으로 만들자.내 생각요즘 테스트를 작성할..
8주간의 CS 스터디 - 운영 방식과 배운 점들 공유
·
후기 or 회고/기타
우테코가 끝난 직후 약 두 달간 포라, 미소, 칼리와 함께 CS 스터디(시스)를 진행했다. 모두에게 꽤 만족도가 높은 스터디였다 👍 스터디가 끝난 기념, 어떤 것을 배웠고 느꼈는지 회고해 본다.더불어 CS 스터디 운영 방식을 고민하는 사람들을 위해 우리만의 진행 방식을 공유하고자 한다.대상 독자CS 스터디를 할지 말지 고민하고 있는 사람CS 스터디 진행 방식을 정하는 데 어려움을 겪고 있는 사람다른 CS 스터디의 내용을 엿보고 싶은 사람필자가 어떤 내용을 재밌게 공부했는지 궁금한 사람 ㅎㅎ혹시 글을 읽고 스터디에 대해 추가적인 궁금증이 있는 경우 편하게 댓글 달아주세요 😁스터디 계기고민의 시작우테코가 끝날 즈음 이런 막연한 고민이 있었다.CS 공부 다시 하고 싶어 근데 대충 하고 싶지는 않아 근데 또..
깃허브에 노출된 환경변수를 완전히 제거하는 현실적인 방법
·
개발/DevOps
들어가며SCG에서 개발했던 정보통신/소프트웨어융합대학 일반대학원 학위논문 심사 시스템(통칭 졸논 시스템)은 깃허브로 관리한다. 해당 레포를 포트폴리오 목적으로 Private에서 Public으로 바꾸기 위해 검토를 하던 중 과거 커밋 히스토리에 .env 파일이 노출된 것을 발견했다. 해당 파일은 프로젝트 초기(2023년 11월 22일)에 처음 추가됐고, 2024년 3월 6일 문제를 인식하고 환경변수가 노출된 파일을 삭제했다.하지만 파일을 삭제했다고 해서 .env 파일이 완전히 제거되는 것이 아니다.레포를 퍼블릭으로 전환하기 위해서는 약 1년 전에 남아있던 히스토리를 제거해야 했다.이 글에서 다루는 내용git filter-repo로 민감한 파일을 히스토리에서 완전히 제거하는 방법깃허브 환경의 어려움과 현실적..
바킹독 문제집 노션 템플릿 공유합니다
·
기타
템플릿 바로가기👇👇👇👇👇 바킹독 문제집 (공유용) | NotionHosted by Notion Sites — The easiest way to get a website up and running.outgoing-headlight-814.notion.site오른쪽 위의 "복제" 버튼을 눌러서 바로 사용할 수 있습니다.제작 계기요즘 저의 관심사 중 하나는 코딩 테스트입니다!바킹독님의 강의와 문제집으로 차근차근 즐겁게 공부 중이에요 😆강의 바로가기문제집 바로가기깃허브에 이미 문제집이 잘 정리되어 있었지만, 제 문제 풀이를 기록하고 추적하고 싶어서 노션 데이터베이스로 관리할 수 있는 템플릿을 만들었습니다.생각보다 너무 잘 쓰고 있어서 공유해 보려고 합니다!템플릿 소개사용 방법은 간단하니 바로 사용해도..
ProfitLab 해커톤 후기 & 회고
·
후기 or 회고/기타
크리스마스가 끝난 직후 2025년 12월 26일-27일 나의 생애 첫 해커톤인 ProfitLab 해커톤에 참여했다.인상 깊었던 순간 위주로 간단한 해커톤 회고를 작성해보려고 한다고고씽~#1 지원 계기우테코 수료식 하루 전, 빈백에 누워서 쉬고 있었는데 SCG 슬랙에 해커톤 팀원을 모집한다는 글이 올라왔다!! (두둥)이전까지는 내 능력에 대한 자신감이 없어서 해커톤을 참여하지 못했었다🥲 팀으로 무언갈 빠르게 만들어야 하는데 1인분을 하지 못하는 상황에 대한 두려움이 있었달까..! 그런데 우테코를 하면서 무엇이든 도전한다면 충분히 만들어낼 수 있다는 자신감을 가지게 되었고, 인생 첫 해커톤에 호기롭게 도전했다.빈백에 누워서 참여여부를 고민하고 있을 때 옆에 해커톤 유경험자인 미미랑 상추가 있었다. 둘 다 ..
[DB] API 성능 테스트, 첫 실행만 3배 느린 이유 - InnoDB Buffer Pool과 LRU 알고리즘
·
개발/DB
모아온의 아티클 조회 API의 성능 테스트를 하다가 이상한 현상을 발견했다. 같은 API를 반복 실행할 때 첫 번째만 유독 응답 속도가 느렸다. 캐시와 관련된 것이겠지 단순 추측해 볼 수는 있었지만, 정확히 어떤 매커니즘인지 궁금해졌다. 이 글에서는 해당 현상의 정체를 파헤쳐본다. 이 글에서 다루는 내용InnoDB 버퍼 풀의 구조와 역할LRU 캐시 알고리즘대상 독자MySQL 사용자, 백엔드 개발자메모리 계층 구조와 캐싱에 대한 기본 이해가 있는 사람1. 문제 상황1.1 API 성능 테스트 중 속도 차이 발견성능 테스트를 할 때, 최초 조회가 유독 시간이 많이 걸리는 현상을 흔히 발견할 수 있다. 모아온의 아티클 조회 API 성능 개선을 위해 테스트 데이터를 넣고 실험을 진행했을 때, 해당 실험의 첫 시도..
모아온 조회 API 성능 개선기 (3) - 쿼리 튜닝의 한계
·
개발/기타
들어가며이전 글에서 OOM 문제를 해결했지만, 여전히 아티클 조회 API는 빠르면 2초, 느리면 30초 정도로 많은 시간이 소요됐다. 검색, 필터링, 정렬, 무한스크롤 4가지 기능을 하나의 쿼리로 처리하고 있었기 때문이다.시리즈의 이전 글이 궁금하다면:1편: 모아온 조회 API 성능 개선기 (1) - 700만 건 테스트 데이터 생성2편: 모아온 조회 API 성능 개선기 (2) - OOM 문제 해결이 문제를 처리하기 위해 여러가지 경우의 수 별로 테스트를 하고, 문제의 원인을 찾고, 개선하는 과정을 반복했다.이 글에서는 techStack 필터링을 중심으로 쿼리 최적화를 통해 성능 개선 시도와, 그 과정에서 마주친 한계점을 소개하려고 한다.실험환경 및 제약조건이 글에서 다루는 최적화의 대상은 “아티클 탐색 ..
모아온 조회 API 성능 개선기 (2) - OOM 문제 해결
·
개발/기타
들어가며앞선 모아온 조회 API 성능 개선기 (1) - 700만 건 테스트 데이터 생성에서 조회 성능 테스트를 위한 데이터 세팅 과정을 다뤘다.700만 건의 테스트 데이터를 생성하고 나서 가장 먼저 마주한 문제는 Out Of Memory 에러였다.이 글에서는 조회 API에서 발생한 OOM 문제의 원인과 해결 과정을 정리한다.이 글에서 다루는 내용페이징 API에서 발생할 수 있는 OOM 문제COUNT 쿼리를 잘못 사용한 사례fetch().size() vs COUNT 쿼리 비교예상 독자Spring Boot와 MySQL, QueryDSL을 사용하는 백엔드 개발자1️⃣ Timeout 문제 발생100만 건의 아티클 데이터를 넣고 다양한 케이스로 테스트하던 중, 특정 API 요청에서 5분이 지나도 응답이 오지 않아..
2025 우아콘 후기의 후기
·
후기 or 회고/기타
간단하게 써보는, 우아콘 후기의 후기! 📍 우아콘을 다녀왔다 우아콘은 우아한형제들이 주최하는 기술 교류 행사로, '우아한테크콘퍼런스'의 줄임말입니다. 2020년부터 시작되어 우아한형제들의 기술 성과, 서비스 개발 경험, 미래 기술 비전 등을 공유하는 자리입니다.- 구글 AI 요약 우테코에서 초대권을 공유 받아 좋은 기회로 우아콘을 갔다 왔다. 사실 개발자 컨퍼런스를 가본 경험이 없어서 크게 기대 없이 갔다 왔는데 나름 재밌고 알찬 시간이었다 😊 오전 10시부터 오후 6시까지 6개의 세션을 꽉꽉 채워서 들었다. 중간중간 이벤트도 빼먹지 않고 참여했다. 계속 앉아서 세션을 들으려니까 많이 피곤하기도 했는데, 처음 온 김에 최대한 뽕을 뽑아 보고자 더 열심히 참여했다ㅎㅎ 첫 테크 컨퍼런스 였는데 너무 좋..
[우테코 Lv4] 4레벨 마무리 + 4레벨 이후의 나는?
·
후기 or 회고/우아한테크코스
10월 31일, 우테코의 4 레벨이 끝나는 날이었다.이 날에는 2개의 행사가 있었다. 오전에는 제이슨의 구직 강의, 오후에는 선배와 함께하는 취준 뽀개기. 솔직히 그렇게 크게 기대하지 않았는데, 두 행사 다 정말 좋았다.특히 6기 선배님인 망쵸의 이야기가 큰 울림을 줬고, 나를 되돌아보는 계기가 됐다.그 과정의 생각들을 글로 정리해보려고 한다. 첫 번째는 혼란했던 나를 위해, 두 번째는 나와 비슷한 고민을 가졌던 사람들을 위해! 모아온이 끝난 후의 나4 레벨의 최종 데모데이가 끝나고, 1주일의 버퍼 기간이 주어졌다. 이 기간 동안 나는 다음과 같은 일들을 했다.모아온 프로젝트 마무리네이버페이 자소서 작성체험형 인턴 조사 및 향후 지원 계획 설정앞으로 우테코를 마무리하고, 취준(코테, 이력서 등)을 위한..