개요 교내 프로젝트중 교내 계정 통합 소셜 로그인 서비스 GAuth를 개발하는 중에 가입된 유저를 검색하는 api가 있다 학년 반 키워드를 입력받아 검색 기능을 처리했고 만약 0을 입력받으면 전부 검색한다는 요구사항이 있었다. 그리고 그걸 내가 개발한게 아니고 팀원이 개발을 해서 pull request를 보내고 코드리뷰를 하는 과정에서 궁금증이 생겼다. findAllByState (State는 CREATED, PENDING으로 CREATED를 가져오는 jpa 메서드)로 유저 리스트를 가져오고 if(grade != 0) users.filter{ it.grade == grade } 이런식으로 애플리케이션 내부로직에서 필터작업을 했다. 그런데 뭔가 아쉬운 느낌이 들었다. 과연 애플리케이션 내부 로직으로 유저 ..
Server & Infra.
개요 Kotlin Spring boot로 클린아키텍처를 적용하며 프로젝트를 만들어가고 있을때 RequestDto를 그냥 Dto로 변경해주고(toDto) 엔티티로 다시 변환할때(toEntity) copy() 메서드를 사용하여 password를 인코딩 시켰다. 이는 컨버터에서 패스워드 인코더를 의존하지 않고 서비스에서만 의존하는다는 이점이 있었다. (toDto에서 패스워드를 바로 인코딩시키면 패스워드 인코더를 컨버터가 의존하게 된다.) 여기서 copy()메서드는 새로운 객체를 만들어 다른 메모리공간에 할당한다는 점을 보아 성능상으로 차이가 많이 날까 궁금했다. 그렇게 성능 차이를 찍어본 결과 copy()를 사용하는 것이 조금 더 빨랐다. 그런데 갑자기 궁금해졌다 다른 메모리를 사용하여 공간을 할당한다해도 이..
개요 원티드에서 진행하는 백엔드 프리온보딩에 참여하게 되었고 아키텍처 구성 강의를 듣기 시작한다. 첫날은 도메인에 대하여 강의를 진행한다 난 그 강의를 보며 배운 내용을 기록한다. "소프트웨어는 사용자가 원하는 어떤 문제를 해결하기 위해 만들어진다. 영화 예매 시스템의 목적은 영화를 좀 더 쉽고 빠르게 예매하려는 사용자의 문제를 해결하는 것이다. 이처럼 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야를 도메인이라고 부른다." - 조영호 '오브젝트'- 도메인이란 무엇일까? 비즈니스 중심, 문제 해결점, 만남의 장소, 나의 이력, 플레이그라운드.. 여러가지 키워드가 언급이 되었다. 도메인이란 도메인은 우리가 프로그래밍을 한다면 가장 신경써줘야할 곳 우리가 문제에 대해 맞닥들이는 곳 문제에 대해 풀어나..
개요 새로운 프로젝트를 하면서 oauth를 도입하기로 결정했다. oauth를 구현하면서도 어떻게 돌아가는지 잘 이해가 되지 않아 이번에 한번 개념들을 정리해보기로 했다. OAuth 2.0? OAuth 2.0 (Open Authorization 2.0) 웹 서핑을 하다보면 google, facebook등 외부 소셜 계정을 기반으로 간편하게 회원가입 및 로그인을 할 수 있는 방법을 쉽게 찾아볼 수 있다. 이러한 서비스들은 연동되는 외부 웹 어플리케이션에서 페이스북 및 트위터등이 제공하는 기능을 간편하게 사용할 수 있다는 장점이 있다. 구글, 페이스북, 트위터, 네이버 등등 다양한 플랫폼에서 특정한 사용자가 데이터에 접근하기 위해 제 3자의 클라이언트가 사용자의 접근 권한을 받을 수 있는 인증을 위한 개방형 ..