dev log
홈동 개발을 마치면서
SSAFY(싸피) 5기에 참여하면서 홈동(HOMEDONG)이라는 프로젝트를 개발했었다. 사실 프로젝트 개발이 끝난지 꽤 지났지만, 정리 차원에서 회고 겸 남겨보려고 한다. 일단 홈동이라는 서비스는 webRTC를 이용한 운동 게이미피케이션 플랫폼이다. 일반적으로 게임에서 확인할 수 있는 방 기능, 게임 기능 등이 있고, 모션 인식을 통해 운동 횟수 카운팅을 하여 유저간에 대결을 하고 랭킹까지 확인할 수 있는 플랫폼이다.. 기획 및 개발 기간 다 합하면 약 6주 정도의 시간이 걸린 것 같다. 처음에 시작할 때, 다른 팀들보다 적게는 1명, 많게는 2명까지 적은 수의 팀이었다. 어쩌다보니 내가 팀장까지 맡게 되어서 솔직한 마음으로 조금은 걱정이 되었던 것은 사실이다. 하지만 기획을 하면서, 개발을 해나가면서 ..
JPA Fetch 전략
Fetch Type JPA가 하나의 Entity를 조회할 때, 연관관계에 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값 Eager : 연관 관계에 있는 Entity들을 모두 가져온다. Lazy : 연관 관계에 있는 Entity를 가져오지 않고, getter로 접근할 때 가져온다. N+1 문제 @ManyToOne, @OneToOne의 FetchType을 LAZY로 했을 때 발생 → DB에 상당한 부하를 일으키게 된다. N+1 문제 해결 방법 join fetch 사용 inner join 불필요한 쿼리문이 추가되는 단점이 있다. @EntityGraph 사용 outer join → Cartesian Product ⇒ 중복이 발생한다. 1:n 필드의 타입을 Set으로 선언한다. → LinkedHashSet..
Spring Boot, Spring Security, jwt를 이용한 회원가입과 로그인
해당 포스팅은 Spring Securty와 jwt를 이용하여 인증, 인가를 구현하기 위해 인프런 Spring Boot JWT Tutorial 강의를 보고 공부한 내용을 남긴 포스팅입니다. JWT RFC7519 인터넷 표준 토큰 기반의 인증 시스템에서 가장 널리 사용되는 인증 방식 JWT의 구성 Header Signature를 해싱하기 위한 알고리즘 정보 Payload 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들을 담고 있다. Signature 토큰의 유효성 검증을 위한 문자열 → 이 토큰이 유효한 토큰인지 검증 가능 JWT의 장점 중앙의 인증서버, 데이터 스토어에 대한 의존성 없음. ⇒ 시스템 수평 확장 유리 Base64 URL Safe Encoding > URL, Cook..
MariaDB의 장점(MySQL과의 비교)
MySQL에서 떨어져나온 RDBMS이기에 익숙한 MySQL과의 문법 차이가 거의 없다. MariaDB는 오픈소스이기에 상업용으로도 사용이 가능하다. ⇒ MySQL은 상업적인 용도에서는 유료 더 나은 성능을 갖고 있다. 좀 더 개방적이고 활발한 개발을 할 수 있다. 호환성이 좋다. 더 많은 스토리지 엔진을 갖고 있다. 참고 자료 https://bongjacy.tistory.com/entry/MariaDB-Mysql-둘-중에-무엇을-설치하지 https://engkimbs.tistory.com/931