목록[대외활동] (58)
개발자로 후회없는 삶 살기
서론 프로젝트 기획 단계에서 서비스에 사용할 모델, 보다 나은 성능을 위한 후처리 등 기술 리서치와 타당성 분석, 비슷한 기존 서비스 등을 조사하고 토의하는 과정을 기록합니다. 본론 - 디자인 컨셉 짜기 팀원 모두 대체적으로 깔끔하고 사용자가 이용하기 깔끔한 디자인을 원하고 있으며 저의 컨셉은 아래와 같습니다. 1. 홈페이지 계절마다 분위기를 다르게 하면 좋을 것 같다는 생각을 하였습니다. 2. 메인 페이지 훤히 보이는 뷰에 깔끔한 디자인을 생각하였고 팀원 모두 저와 동일한 생각을 가지고 있었습니다. 3. 결과물 페이지 우측 이미지처럼 인테리어 후 전체 이미지를 보여주는 것은 반드시 있어야 합니다. 추가로 저는 좌측 이미지처럼 수정한 부분만 클릭해서 확대해서 볼 수 있다면 사용자의 편리함을 더해줄 수 있..
서론 하기 내용은 변경될 수 있습니다. 카테고리 회원 관리자 가구 공간 기능 설계 회원 회원가입 기능 회원은 이메일, 비밀번호, ID로 회원가입을 할 수 있다. 회원의 비밀번호는 암호화되어 저장된다. (미정) 회원은 소셜 로그인을 할 수 있다. 검증 기능 이메일 형식이 아니면 예외가 발생한다. 이미 존재하는 이메일이면 예외가 발생한다. 정책에 맞는 비밀번호 형식이 아니면 예외가 발생한다. 이미 존재하는 ID면 예외가 발생한다. 로그인 기능 회원은 이메일과 비밀번호로 로그인할 수 있다. (미정) 회원은 이메일이나 비밀번호를 잃어버리면 다시 찾을 수 있다. 검증 기능 이메일 형식이 아니면 예외가 발생한다. 이메일이 일치하지 않으면 예외가 발생한다. 정책에 맞는 비밀번호 형식이 아니면 예외가 발생한다 비밀번호..
서론 프로젝트 주제와 방향성을 잡고 발전시켜, 서비스 방향을 확장할 수 있는 기획 단계를 진행합니다. 본론 - 프로젝트 주제 인테리어 도우미 어플리케이션으로 방 구조를 사진으로 찍어 입력하여 3D로 재구성하고 사용자의 가구 사진을 입력하여 3D로 재구성 한 후 사용자 마음대로 인테리어를 배치하고 시뮬레이션 해볼 수 있는 맞춤형 인테리어 서비스를 주제로 잡았습니다. 가구점에서 맘에 드는 가구가 있을 때 바로 자신의 방에 넣어 볼 수 있는 맞춤형 서비스입니다. 1주차에서는 정한 주제를 토대로 기획안을 작성해보고 기술 한계를 지속적으로 조사하는 것으로 결정했습니다. - 기획단계 => 기술 리서치 1. Udacity Interactive 3D Graphics https://www.udacity.com/enrol..
서론 기존에 사용하던 JWT 정책이 변경되었고 다양한 정보를 JWT에 넣기로 했습니다. 그 과정을 기록합니다. 본론 - 관리자 권한 추가 @Enumerated(EnumType.STRING) @Column(name = "roletype", length = 255, nullable = false) private RoleType roleType; 학과 홈페이지 관리를 하는 관리자 분들은 관리자만의 기능을 수행할 수 있어야 합니다. 따라서 로그인 한 사용자가 권리자 권한이 있는지 없는지 검증하는 과정이 필요했습니다. 로직을 어떻게 할까? ✅ 인터셉터를 사용해서 관리자가 아닌 학생이 관리자로 요청을 하면 바로 막아버리면 좋을 것 같다고 생각했습니다. -> 1차 기존 인터셉터 그렇게 처음 만든 인터셉터는 위와 같습..
서론JWT(Json Web Token)은 일반적으로 프론트엔드와 백엔드 사이에서 통신 시 권한 인가를 위해 사용하는 규칙입니다. 현재 진행하고 있는 캡스톤 디자인에서 REST API를 사용 중인데, 웹으로 Form을 통해 로그인하는 것이 아닌, API 호출로 프론트엔드에서 토큰으로 인증을 체크하고자 JWT를 선택하여 구현해보았습니다. 본론- 필요한 코드들저는 인터셉터와 커스텀 Argument Resolver를 이용해서 로그인한 사용자인지 필터링을 할 것이며, JWT를 이용한 로그인 인증을 할 것입니다. 따라서 필요한 파일들은 위 사진과 같습니다. AuthenticationPrincipalConfig : 인터셉터와 Argument Resolver 설정SecurityConfig : 스프링 시큐리티 설정aut..
서론 프로젝트를 프론트와 백엔드로 분리하면서 연동하는 과정을 기록합니다. 본론 저는 최초로 리액트 프로젝트를 만드는 것이 아닌 생성되어 있는 리액트 프로젝트를 pull하여 스프링 프로젝트와 연결시켰어야 했습니다. 따라서 처음부터 리액트를 설치하는 과정에서 몇 개의 과정이 생략이 필요했고 밑에서 자세하게 알아보겠습니다. 1. nodejs 설치 리액트를 설치하기 위해서는 npm 명령어를 할 수 있어야 합니다. npm 명령어를 수행하기 위해 node js를 설치했습니다.(참고 1) 2. npm install 설치된 리액트 프로젝트에서 npm install을 통해 npm을 설치해줍니다. npx create-react-app 최초에 리액트부터 만드는 것이라면, 위 명령어로 리액트 프로젝트를 만드는 것이 필요하지만..
서론 캡스톤을 진행할 때 설계를 모두 마치고 구현을 하던 도중 처음에 설계했던 ERD 모델에서 변경되었던 부분을 기록합니다. 본론 - 학생과 졸업 처음에는 졸업 신청과 학생을 1:n 관계로 설계했었습니다. 1명의 학생이 1번의 졸업을 하고 졸업은 여러 명의 학생에게 신청 받을 수 있기 때문에 이렇게 설계했었습니다. 하지만 졸업을 신청할 때 여러가지 단계가 존재하였습니다. 예를 들어 한 명의 학생이 졸업을 하기 위해서는 신청서를 제출하고 > 제안서를 제출하고 > 중간보고서를 제출하고 > 최종 보고서를 제출해야 하며 이 모든 단계가 졸업 신청의 요소로 들어가야 했습니다. 그러면 이를 어떻게 ERD에 적용해야 할까요? ✅ 이렇게 되면 한 명의 학생이 1번의 신청을 하는 것이 아닌 여러번의 신청을 하게 되어 M..
서론 캡스톤을 진행하며 발생했던 이슈와 개선 사항을 정리합니다. 본론 - 초기 엔터티 구축 첫 번째 기능에 필요한 초기 엔터티를 구축합니다. @Entity @Getter @Table(name = "student") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Student extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "student_id") private Long id; @Column(name = "login_id", length = 255, nullable = false) private String loginId; ..