Developer Perspective

개요 도메인 주도 설계 개발자라면 코드를 짜는 것 뿐만 아닌 효율적으로 아키텍처를 구성하고 관리할 수 있는 환경을 만들어 나가야한다고 생각한다. 전체적인 틀을 잡지 않으면 효율적인 코드는 존재할 수 없다고 생각한다. 그렇기 때문에 도메인 주도 설계에 대해서 공부하려고 마음 먹었다. DDD 도메인 주도 설계란? 도메인 주도 설계는 소프트웨어 개발에서 사용되는 설계 방법론 중 하나로 이 방법론은 비즈니스 도메인을 중심으로 소프트웨어를 설계함으로써 비즈니스 문제를 해결하고, 유지보수가 가능한 소프트웨어를 만드는 것을 목적으로 한다. 도메인 주도 설계는 소프트웨어 개발 비즈니스 도메인과 관련된 용어, 개념, 규칙 등을 중심으로 이루어지도록 하고 이를 위해 도메인 모델이라는 개념을 도입해 비즈니스 도메인의 개념..
개요 교내 프로젝트중 교내 계정 통합 소셜 로그인 서비스 GAuth를 개발하는 중에 가입된 유저를 검색하는 api가 있다 학년 반 키워드를 입력받아 검색 기능을 처리했고 만약 0을 입력받으면 전부 검색한다는 요구사항이 있었다. 그리고 그걸 내가 개발한게 아니고 팀원이 개발을 해서 pull request를 보내고 코드리뷰를 하는 과정에서 궁금증이 생겼다. findAllByState (State는 CREATED, PENDING으로 CREATED를 가져오는 jpa 메서드)로 유저 리스트를 가져오고 if(grade != 0) users.filter{ it.grade == grade } 이런식으로 애플리케이션 내부로직에서 필터작업을 했다. 그런데 뭔가 아쉬운 느낌이 들었다. 과연 애플리케이션 내부 로직으로 유저 ..
개요 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자의 클라이언트가 사용자의 접근 권한을 받을 수 있는 인증을 위한 개방형 ..
Spring Security란? 스프링 시큐리티는 인증 (Authentication) ,권한(Authorize) 부여 및 보호 기능을 제공하는 프레임워크다. Java / Java EE 프레임워크 개발을 하면서 보안 분야는 시간이 많이 소요되는 활동들 중 하나다. Spring Security를 사용함으로써 짜여진 내부 로직을 통해 인증, 권한 확인에 필요한 기능과 옵션들을 제공한다. 인증(Authentication) , 인가(Authorization) 인증과 인가란 무엇일까? 보통 인증 절차를 거친 후 인가 절차를 진행한다. 인증: 해당 사용자가 본인이 맞는지를 확인하는 절차. 인가: 인증된 사용자가 요청된 자원에 접근가능한가를 결정하는 절차 인증 방식 1. credential 방식: username, p..
· Language.
개요 POJO란 무엇일까? 오늘은 무엇을 공부할까 하며 주제들을 찾고있었는데 POJO란게 눈에 보였다. 뭔가 이름이 귀여워보이기도하고 그래서 오늘 한번 공부해보겠다. POJO POJO(Plain Old Java Ovject) 말 그대로 해석하면 오래된 방식의 간단한 자바 오브젝트라는 말이다. 오래된 방식의 간단한 오브젝트를 조금 더 풀어서 말해보자면 특정 기술에 종속되어 동작하는 것이 아닌 순수한 자바 객체 그 자체를 말하는 것입니다. @Getter @Setter public class UserDto{ private String name; private String email; private String password; } 예를 들어 위 객체는 순수 자바 기능인 Getter, Setter만 가지고 있다..
· in khope.
개요 선생님의 추천으로 하이스쿨 알고리즘 캠프라는 알고리즘 수업도 듣고 팀을 짜 함께 알고리즘 문제풀이 대회도 진행하는 구름 하이스쿨 알고리즘 캠프에 참여하게되었고 오늘 마치고 집에 돌아와 적는 글이다. 알고리즘? 나는 알고리즘 문제를 푸는 것을.. 좋아하기보다는 싫어하진 않고 오히려 풀었을때의 성취감을 느끼고 또 취업을 하려면 거의 디폴트로 가져가야하는 역량이기때문에 백준은 나름 열심히 풀었다. 나는 보통 구현 수학 그리디 구간합과 같은 알고리즘 문제들을 푸는 중이였고 어느날 선생님이 카톡으로 알고리즘캠프를 진행한다고 공지를 해주셔 알고리즘이 고팠던 나는 바로 신청을 했다. 이 알고리즘 캠프는 판교 제주 광주 이렇게 세 지역에서 진행했고 나는 광주 영상 복합문화관에서 진행하는 광주 캠프에 신청을 했다...
· in khope.
개요 2월 5일 한가한 오후 3시쯤 내일 2월 6일은 나의 기쁘고도 기쁜 생일이다! 12시 땡치자마자 놀아야지? 라고 생각했었다. 곧 다가올 비극은 알아차리지 못한채.. 2월 5일 3시 30분 팀 프로젝트의 기능관련 회의를 마치고 나의 스프링부트 프로젝트를 클라우드타입으로 옮겨 개발 서버를 배포하기위한 작업을 하고있었다. 그렇게 환경변수를 하나하나 차곡차곡 삽질해주며 평소처럼 설정을 마치고 실행을 눌렀다. 그런데 이게 무슨상황인가 환경변수로 yml을 바꿔주고 실행을 눌렀는데. 어라 Access denied..? 분명 로컬인데 왜 이게 뜨는걸까? 분명 url도 맞게 설정을 했고 비밀번호와 유저도 ... MySQL의 문제인건가? 하고 계속해서 삽질을 이어나갔다. mysql을 지우고 프로세스를 전부 죽인후에 ..
khope
'분류 전체보기' 카테고리의 글 목록 (8 Page)