본문 바로가기

분류 전체보기

(187)
WIL-6 Fact : 이번주 있었던 일, 내가 한 일 월 : Spring 3차 테스트, 스프링 과제 AWS 배포 화 : 팀프로젝트 SA, 와이어 프레임, API 명세 작성, 팀 Git Repository 생성 수 : 유저 회원가입, 로그인 기능, 선택지에 대한 좋아요, 댓글에 대한 좋아요 기능 개발 목 : 개발 기능 테스트, 유저 로그아웃 기능 개발 금 : Refresh Token, Access Token 관리 기능 개발, 통합 테스트 토 : AWS HTTPS 배포 설정, 백엔드 버그 수정 Feeling : 나의 감정적인 반응, 느낌 프론트엔드와 처음으로 협업하는 프로젝트여서 서로 아는 부분이 달라 소통에서 어려움을 겪었음 API 설계 시 MVP 설정을 제대로 하지 않아 기능 개발 중 어려움을 겪었음 CORS, ..
AWS로 HTTPS 연결 EC2로 HTTPS 연결 개요 HTTPS는 SSL이라는 보안 프로토콜 위에서 HTTP 통신을 하는 프로토콜을 뜻함(최근에는 발전된 TLS 사용). 사전 필요사항 EC2 인스턴스 개설 실행 가능한 웹 서버 도메인 구매 특정 IP에 부여된 naver.com, google.com과 같은 주소들을 도메인이라고 하며, https 연결을 위해서는 도메인 주소를 소유하고 있어야 한다. '가비아' 1. 가비아에 접속 2. 사용을 원하는 도메인 명을 검색 3. 도메인 별 1년 가격이 나옴(Event 가격은 최초 1년만 적용됨), 기간이 지나고 연장하지 않을 경우 자동으로 삭제 됨 4. 등록 기간 설정 후 필수 정보 입력 후 결제 5. My가비아 → 이용 중인 서비스 → 도메인 메뉴에서 구입한 도메인 확인 가능 Route..
LogBack을 통한 로그 관리 로깅을 하는 이유 로깅 : 시스템이 동작할 때 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것을 의미한다. 로깅을 통해 할 수 있는 것 개발 과정 혹은 개발 후에 발생할 수 있는 예상치 못한 애플리케이션 문제를 진단할 수 있다 다양한 정보를 수집할 수 있다 사용자 로그의 경우 분석 데이터로도 활용할 수 있다 Reference https://tecoble.techcourse.co.kr/post/2021-08-07-logback-tutorial/ 로거 선택 기준 가장 많이 사용되는 로거 Logback java.tuil.logging Log4j2 Log Back의 성능이 전반적으로 가장 탁월하기 때문에 대체로 LogBack을 선택했다. Log Back이란? Slf4j의 구현체로 Spring Boo..
Jwt Access Token과 Refresh Token Refresh token의 필요성 Access Token만을 통한 인증 방식의 문제는 제 3자에게 탈취당할 경우 보안에 취약하다는 점임. 엑세스 토큰은 발급 된 이후, 서버에 저장되지 않고 토큰 자체로 검증을 하며 사용자 권한을 인증하기 때문에, 엑세스 토큰이 탈취되면 토큰이 만료되기 전까지, 토큰을 획득한 사람은 누구나 권한 접근이 가능해짐 JWT는 발급한 후 삭제가 불가능하기 때문에, 접근에 관여하는 토큰에 유효시간을 부여하는 식으로 탈취 문제에 대해 대응해야 함 토큰의 유효기간을 짧게하면 토큰 남용을 방지하는 것의 해결책이 될 수 있지만, 유효기간이 짧은 토큰의 경우 그만큼 사용자는 로그인을 자주해서 새롭게 Token을 발급받아야 하므로 불편하다는 단점이 있음. 유효기간을 짧게 하면서 위의 문제를 ..
REST API URI 규칙 REST API URI 설계 규칙 모든 필수적인 자원 정보들을 소통하는데 있어서 가독성 있고 규칙에 위반되지 않은 URI 작성을 위한 규칙 URIs REST API는 자원의 주소를 나타내기 위해 Uniform Resource Identifiers(URIs)를 사용함 Client들은 웹의 연결 패러다임을 따라야 하며 URI를 불확실한 식별자로 대우해야 함, REST API 디자이너들은 잠재적 Client 개발자들에게 REST API의 자원 정보를 전달할 수 있는 URI를 만들어야 함 #1. URI에 후행 슬래시(주소 마지막에 붙이는 /)는 포함되지 않아야 됨 혼란을 줄 수 있고 의미가 없는 후행 슬래시를 URI 경로의 마지막에 포함시키지 않는 것은 규칙 중 가장 중요한 것 중 하나임. REST API는 후..
Java - SOLID 객체 지향의 SOLID 원칙 SOLID는 SRP, OCP, LSP, ISP, DIP의 앞 글자들을 딴 용어 SRP (Single Responsibility Principle) - 단일 책임 원칙 OCP (Open-Closed Principle) - 개방 폐쇄 원칙 LSP (Liscov Substitution Principle) - 리스코프 치환 원칙 ISP (Interface Segregation Principle) - 인터페이스 분리 원칙 DIP (Dependency Inversion Principle) - 의존 관계 역전 원칙 객체 지향 설계를 잘해서 프로그래밍할 때의 장점 유지보수가 쉬워짐 확장성이 좋아짐 재사용성이 상승 자연적인 모델링이 가능 클래스 단위로 모듈화해서 대형 프로젝트 개발이 용이해짐..
ExceptionHandler 예외 처리는 애플리케이션을 만드는데 매우 중요한 부분을 차지함, Spring 프레임워크는 다양한 에러 처리 방법을 제공함 Spring의 기본적인 예외 처리 @RestController @RequiredArgsConstructor public class ProductController { private final ProductService productService; @GetMapping("/product/{id}") public Response getProduct(@PathVariable String id){ return productService.getProduct(id); } } 위 컨트롤러의 getProduct에서 NoSuchElementFoundException 예외가 발생했다면 접속한 환경에 따..
WIL-5 Fact : 이번주 있었던 일, 내가 한 일 월 : Spring 2차 테스트, 3레벨(백오피스) 과제 리뷰, 메서드 네이밍 컨벤션 학습 화 : 댓글 등록, 수정, 삭제 기능, 좋아요 기능 구현, Controller / RestController 학습 수 : 댓글 등록, 수정, 삭제 기능, 좋아요 리팩토링, Lombok 주의 사항 학습 목 : 프로그램 구동 테스트, Entity / DTO 분리 학습 금 : 상품 등록, 선택 상품 조회, 카테고리별 조회(페이징) 기능 구현, QueryDSL 학습 토 : 페이징 QueryDSL로 리팩토링 후 QueryMethod 성능 비교 테스트, AWS 배포 학습 Feeling : 나의 감정적인 반응, 느낌 팀 프로젝트 진행 중 팀원이 하루씩 참여를 못하는 문제가 발생하면서..