profile
배울 것이 많은 초보 개발자 입니다!
post-thumbnail

F12의 눈물나는 쿼리 개선기 - 실전편

지난 시간에 인덱스를 활용하여 어떻게 하면 쿼리 성능을 개선할 수 있을지 MySQL 콘솔을 통해 실험해가며 알아보았습니다. 그를 통해 개선된 쿼리를 만들어 낼 수 있었죠. 하지만 저희 팀 서비스는 결국 스프링과 JPA를 사용한 웹 애플리케이션이고, 개선된 쿼리를 자바

2일 전
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 스프린트 5 F12 개발일지

레벨 4는 프로젝트가 주가 아니라는 생각에 레벨 4 초반에는 프로젝트보다는 개인 공부에 집중했었다. 백엔드 쪽 요구사항으로 인덱스와 스레드 설정이 주어졌었는데, 오히려 잘 모르다 보니 오래 고민하고 오래 테스트 해봐야 한다는 것을 몰라서 쉽게 끝낼 수 있을 거라고 착각

4일 전
·
1개의 댓글
·
post-thumbnail

F12의 눈물나는 쿼리 개선기 - 이론편

우아한테크코스에서는 팀 프로젝트를 진행중입니다. 그 중 이번 5차 데모 데이의 백엔드 요구 사항으로 다음과 같은 부분이 있었습니다.서비스에서 사용하는 쿼리를 정리하고, 각 쿼리에서 사용하는 인덱스 설정서비스에서 사용하는 모든 조회 쿼리와 테이블에 설정한 인덱스 공유인덱

2022년 9월 20일
·
4개의 댓글
·
post-thumbnail

[Spring Data JPA] findByXXXId 는 불필요한 join을 유발한다

프로젝트에서 JPA를 사용하던 도중 이상한 부분을 발견했습니다. 엔티티 끼리 연관관계가 있을 때 어떤 곳에서는 findByXXX 형태의 쿼리 메서드를, 어떤 곳에서는 findByXXXId 형태의 쿼리 메서드를 사용하고 있는데요, findByXXX를 사용했을 때는 생각한

2022년 9월 16일
·
1개의 댓글
·
post-thumbnail

Access Token과 Refresh Token을 어디에 저장해야 할까?

F12 팀 프로젝트는 JWT 토큰을 Access Token으로 하는 인증 인가 서비스를 구현하고 있습니다. 로그인을 하면 백엔드 서버에서 토큰을 만들어 보내주고, 이후 클라이언트에서 보내는 요청의 Authorization 헤더에 토큰을 담아서 보내면 서버에서 토큰을 디

2022년 9월 14일
·
0개의 댓글
·
post-thumbnail

운영체제는 어떻게 여러 프로그램을 동시에 실행하나요?

우아한테크코스에서 CS 스터디를 진행중에 있는 저는, 9월 2주차 발표 주제로 운영체제가 여러 프로그램을 동시에 실행하는 원리에 대해 설명해주세요. 라는 주제를 선택했습니다. 대학교 시절 운영 체제 수업을 들으면서 분명히 배웠는데, 전혀 기억이 안났었기 때문이죠. 이번

2022년 9월 11일
·
3개의 댓글
·
post-thumbnail

의존성을 고려하여 우아하게 설계하기(feat. DIP)

현재 우아한테크코스 레벨 4의 첫 미션인 톰캣 구현하기 미션을 진행중입니다. 그동안 아무 생각 없이 사용하던 톰캣의 내부 구조를 직접 구현하고, 해당 톰캣을 사용하는 간단한 웹 애플리케이션을 구동하는 미션인데요, 미션을 진행하면서 의존성에 관한 고민을 하게 되어 간단히

2022년 9월 9일
·
0개의 댓글
·
post-thumbnail

API의 쿼리 개수 세기 - (2) JDBC, Spring AOP, Dynamic Proxy를 활용한 카운팅

지난 시간에 이어 이번에는 하이버네이트를 사용하지 않을 때 쿼리 개수를 카운팅하는 방법에 대해 알아보겠습니다. 이번에도 역시 아이디어는 같습니다. "쿼리가 실행될 때 query count 값을 1 증가시킨다."입니다. 하지만 이번에는 하이버네이트의 힘을 빌리지 않기 때

2022년 8월 28일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220818 F12 개발일지

이번 주 개발일지를 쓰지 않았다. 레벨 3 막판이 되어 나태해진 것인지… (물론 그렇다고 작성해야 할 코드를 작성하지 않거나 해야 할 공부를 안하지는 않았다.) 그래도 레벨 3를 마무리하는 입장에서 이번 주 어떤 일들을 했고 어떤 이슈가 있었는지에 대해 남길 필요가 있

2022년 8월 18일
·
2개의 댓글
·
post-thumbnail

API의 쿼리 개수 세기 - (1) 하이버네이트를 이용한 카운팅

JPA를 사용하게 되면 쿼리를 직접 작성하지 않다 보니(물론 native query를 사용하는 때도 있습니다만 일반적으로는) 예상보다 많은 쿼리가 실행되는 경우가 많습니다. 대표적으로 N+1 문제를 예로 들 수 있겠네요. 그러다 보니 쿼리가 몇 번이나 날아가는지를 확인

2022년 8월 16일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 팀 프로젝트가 나에게 남긴 것

대부분의 크루들이 그렇겠지만, 우아한테크코스에서 가장 기대했던 활동은 레벨 3 프로젝트였습니다. 우아한테크코스에 들어오기 전, 선배 크루들이 작성한 프로젝트를 보면서 나도 저렇게 잘 짜인 프로젝트를 만들 수 있을까? 라는 생각하며 두근거렸었거든요. 특히나 대학생 때까지

2022년 8월 15일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 우테코에서 찾은 나만의 효과적인 공부법

초등학교 6년, 중학교 3년, 고등학교 3년, 그리고 대학교 4년. 16년이나 공부를 했지만 단 한 번도 올바른 방법으로 공부하고 있다고 생각해 본 적이 없다. 되돌아보면 내 학습은 능동적이지 않았고, 궁금한 것도 없어서 의욕적이지 않았다.대학 이전 12년의 공부의 목

2022년 8월 15일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220811 F12 개발일지

기존에는 예외가 터질 때 마다 예외 상황을 나타내는 메시지를 담은 response를 보내주었었다. 하지만 이렇게 하니까, 프론트엔드에서는 백엔드가 보내주는 메시지에 의존해서 개발을 할 수 밖에 없다는 문제가 있었다. (상태코드 + 에러 메시지 형태인데 상태 코드는 세분

2022년 8월 11일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220810 F12 개발일지

어제 하지 못했던 7인 몹 프로그래밍을 진행했다. 몹으로 진행하기로 한 핵심 기능은 제품 검색 기능이었는데, 백엔드 쪽에서는 인수 테스트 시나리오를 작성한 뒤 레포지토리 단부터 TDD로 올라오는 방식의 프로그래밍을 진행했다. if문으로 카테고리를 분기하고 있던 부분을

2022년 8월 10일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220809 F12 개발일지

원래는 오늘 매 스프린트마다 요구사항 중 하나인 스프린트마다 FE에서 BE를 관통하는 기능 중 최소 하나를 FE/BE 페어로 개발을 만족하기 위해서 제품 검색 기능에 대해 팀원 7명이 모두 참여하는 7명의 페어몹 프로그래밍이 있을 예정이었다. 하지만 어제 중부지방에 내

2022년 8월 9일
·
0개의 댓글
·

Lombok의 @Builder를 사용할 때 필드의 기본값 설정하기

객체를 생성할 때 빌더 패턴을 사용하는 경우가 많습니다. 저는 도메인 객체, 그 중에서도 특히 JPA를 쓸 때 엔티티 객체를 만들 때 빌더 패턴을 애용하는데요, 하지만 빌더 패턴은 직접 구현하기에는 코드량이 상당합니다. 이럴 때 Lombok이 제공하는 @Builder

2022년 8월 9일
·
0개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220803 F12 개발일지

이전까지는 백엔드 WAS가 띄워져 있는 EC2에 로컬로 h2 데이터베이스를 띄워놓고 사용중이었다. 인바운드 규칙에 보통 DB 포트로 사용하는 3306 포트가 제대로 열려있지 않기도 했었고, 데이터베이스 스키마가 계속 바뀌고 있는 상황이어서 MySQL을 올리고 나면 계속

2022년 8월 3일
·
1개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220802 F12 개발일지

front-main, back-main, front-test, back-test 총 네 개의 EC2 인스턴스에 모두 HTTPS 적용을 완료했다. 가비아를 통해 구매한 도메인은 f12.app으로, 서브도메인을 활용하여 www.f12.app은 메인 프론트엔드에, prod.

2022년 8월 2일
·
1개의 댓글
·
post-thumbnail

[우아한테크코스 4기] 220729 F12 개발일지

어제부터 우리 팀을 괴롭혔던 REST Docs가 보이지 않는 이슈를 해결했다. 표면적인 이유는 Jenkins 빌드 시 workspace를 삭제하도록 변경한 이후로 REST Docs가 보이지 않는 것이 맞았다. 하지만 실제 원인은 다른 곳에 있었는데, 애초에 REST D

2022년 7월 29일
·
1개의 댓글
·
post-thumbnail

REST Docs "어딜 보시는 거죠? 그건 제 잔상입니다만?"

많은 프로젝트 팀들이 API 문서화를 위해 Spring REST Docs를 사용합니다. 그리고 REST Docs를 만드는 과정에서 생긴 html 파일을 서버에 함께 배포해서 사용합니다. 저희 F12팀 역시 http://{백엔드ip}:{백엔드포트}로 접속하면 d

2022년 7월 29일
·
2개의 댓글
·