본문 바로가기

TIL(Today I Learned)

(137)
TIL-230814(항해99 실전 프로젝트-행동대장(10)) 📝오늘 공부한 것 실전 프로젝트 - '행동대장' CORS 에러 해결 ⛔문제점 [에러메시지] ERROR 63970 --- [nio-8080-exec-2] 로그인 및 JWT 생성 : No content to map due to end-of-input at [Source: (org.apache.catalina.connector.CoyoteInputStream); line: 1, column: 0] 2023-08-14T02:29:53.286Z ERROR 63970 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] thre..
TIL-230812(항해99 실전 프로젝트-행동대장(9)) 📝오늘 공부한 것 실전 프로젝트 - '행동대장' 이메일 인증 기능 구현 ⛔문제점 CICD를 다 해놓고 각자 기능을 개발중이었는데 프론트에서 서버에 접속이 안된다고 하였다. 그래서 프로세스가 잘 돌아가고 있는지를 확인하고 로그를 찍어보았다. 서버 로그를 보니 서버가 중단되었다. [에러메시지] Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-08-12T10:36:10.494Z ERROR 58129 --- [ main] o.s.boot.SpringApplication : Application run failed org.spring..
TIL-230811(항해99 실전 프로젝트-행동대장(8)) 📝오늘 공부한 것 실전 프로젝트 - '행동대장' 닉네임 중복 기능 구현 📌 ✔ UserService 닉네임 중복확인 로직 //닉네임 중복확인 @Transactional(readOnly = true) public userResponseDto nicknameCheck(NicknameCheckRequestDto requestDto) { String nickname = requestDto.getNickname(); if (checkNickname(nickname)) { return new userResponseDto("이미 존재하는 닉네임입니다."); } else { return new userResponseDto("사용 가능한 닉네임입니다."); } } ⛔문제점 [에러메시지] WARN 44020 --- [ni..
TIL-230810(객체지향 프로그래밍, 대용량 트래픽 처리) 📝오늘 공부한 것 객체지향 프로그래밍 대용량 트래픽 발생 시 대응방법 알게 된 점❗ ✔ 객체지향 프로그래밍(Object-Oriented Programming, OOP) : - 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 객체지향 프로그래밍의 특징은 캡슐화, 상속, 다형성, 추상화이다. 캡슐화 : - 속성(필드)와 기능(메서드)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것을 의미한다. - 외부 객체에서는 캡슐화된 객체의 내부 구조를 알 수 없기 때문에 노출시켜 준 필드 혹은 메서드를 통해 접근할 수 있다. - 필드와 메서드를 캡슐화 하여 숨기는 이유는 외부 객체에..
TIL-230809(항해99 실전 프로젝트-행동대장(7)) 📝오늘 공부한 것 실전 프로젝트 - '행동대장' 로그인/회원가입 기능 구현 DI, IoC 알게 된 점❗ ✔ DI, IoC IoC, DI는 객체지향의 SOLID원칙 그리고 GoF의 디자인 패턴과 같은 설계원칙 및 디자인 패턴이다. IoC는 설계 원칙에 해당하고, DI는 디자인 패턴에 해당한다. IoC, DI는 좋은 코드 작성을 위한 Spring의 핵심기술이다. IoC는 DI로도 알려져있다. -> DI패턴을 이용하여 IoC설계 원칙을 구현하고 있다. 여기서 좋은 코드란?? 논리가 간단해야 한다. 중복을 제거하고 표현을 명확하게 한다. 코드를 처음보는 사람도 쉽게 이해하고 수정할 수 있어야 한다. 의존성을 최소화해야한다. 새로운 기능을 추가하더라도 크게 구조 변경이 없어야 한다. DI(Dependency In..
TIL-230808(HTTP, HTTPS) 📝오늘 공부한 것 실전 프로젝트 - '행동대장' 로그인/회원가입 기능 구현 HTTP, HTTPS 알게 된 점❗ ✔ HTTP(HyperText Transfer Protocol) - 클라이언트와 서버간 통신을 위한 통신 규칙 또는 프로토콜 - 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답한다. 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환한다. 간단히 말해 HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기본 기술이다. ✔ HTTPS(HyperText Transfer Protocol Secure) - HTTP의 확장 버전 또는 더 안전한 버전 - HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결..
TIL-230807(항해99 실전 프로젝트-행동대장(6)) 📝오늘 공부한 것 실전 프로젝트 - '행동대장' CICD 구축 및 https 적용 TCP / UDP 알게 된 점❗ ✔ TCP(Transmission Control Protocol) - 전송 제어 프로토콜 - 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 - 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜(ex.파일전송) 특징 : - 연결 지향 방식으로 패킷 교환 방식을 사용한다. - 연결형 서비스로 연결이 성공해야 통신이 가능하다. - 데이터의 전송 순서를 보장한다. - 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다. - 흐름 제어 및 혼잡 제어 - 높은 신뢰성을 보장한다. - UDP보다 속도가 느리..
TIL-230805(항해99 실전 프로젝트-행동대장(5)) 📝오늘 공부한 것 실전 프로젝트 벡엔드 기술적 의사결정 실전 프로젝트 세팅 쿠키, 세션 알게 된 점❗ swagger REST API를 설계, 구축, 문서화 및 사용하는 데 도움이 되는 OpenAPI 사양을 기반으로 구축된 오픈 소스 도구이다. dependency에 추가하고, 설정들을 하면 코드에 따라 자동으로 API 문서가 수정된다. 아직 한번도 써보진 않았지만 이번 기회에 사용해봐도 좋을 것 같다는 생각이 들었다. https://swagger.io/ API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better pr..