내일배움캠프 50일차 TIL - JDBC
·
⛺스파르타코딩클럽
240627오늘의 학습    ●  1. H2 Database 사용 방식 3가지    ●  2. JDBC  H2 Database 사용 방식 3가지H2 Database는 Server Mode, In-memory Mode, Embeded Mode 세 가지 방식으로 사용할 수 있다. 1. ServerMode직접 H2 Database엔진을 설치하여 사용하는 방식으로, 애플리케이션과 상관 없이 외부에서 DB 엔진이 따로 구동이 된다.데이터가 애플리케이션 외부에 저장이 되므로 애플리케이션을 종료해도 데이터가 사라지지 않는다. ( 서버 방식 ) 2. In-memory Mode엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식으로, 애플리케이션을 실행하면 DB 엔진이 함께 실행되고 애플리케이션을 종료하면 DB..
내일배움캠프 49일차 TIL - Spring Security 필터 순서에 따른 인가 문제
·
⛺스파르타코딩클럽
240626오늘의 학습    ●  SpringSecurity 자습 Spring Security를 이용하며 생긴 문제와 해결Security 설정에 requestMatchers().permitAll().anyRequest().authenticated() 메서드를 이용하면 인가 권한이 없이 넘어갈 수 있다고 들어 개인적으로 해석을하여 위의 빌더 방식의 메서드를 호출하면 SecurityFilterChain에 들어있는 Filter들을 모두 건너뛰어 바로 Controller로 넘어가는 줄 알았지만, FilterChain 내부에 커스텀한 JwtAuthorizationFilter에 토큰 검증 메서드를 수행한다는 사실을 알게되었다. 결국 SecurityFilterChain의 Filter를 탄다는 사실을 알게되었고, 그럼..
내일배움캠프 48일차 TIL - 아웃소싱 프로젝트[KPT회고]
·
⛺스파르타코딩클럽
240625오늘의 학습    ●  프로젝트 컨셉    ●  구현해야 할 기능 및 분배     ●  패키지 구조    ●  API 명세서    ●  트러블 슈팅아웃소싱 프로젝트가 끝나고 난 회고 1. 프로젝트 컨셉부트캠프 내에서 수강생 분들끼리 대화를 할 수 있는 커뮤니티 사이트 2. 구현해야 할 기능 및 분배팀장프로필 조회 및 수정좋아요 기능(게시물 및 댓글 좋아요/ 좋아요 취소)소셜 로그인 기능 구현팀원 1게시글 CRUD - 기능팀원  2댓글 CRUD - 기능글쓴이(me)사용자 인증 (회원가입/탈퇴, 로그인, 로그아웃) 3. 패키지 구조아키텍처 패키지 구조로는 크게 2가지인 "계층형 방식"과 "도메인형" 방식을 생각을 했었고, 이번 프로젝트에는 도메인형 방식을 채택하여 패키지 구조를 짜게 되었습니다. ..
내일배움캠프 47일차 TIL - SpringDataJPA
·
⛺스파르타코딩클럽
240624오늘의 학습    ●  SpringDataJPA  Application 스프링 프레임워크, 스프링부트로 만든 기본적인 어플리케이션 레이어를 의미한다. 1. SpringDataJPAJPA를 Spring환경에서 편리하게 이용하기 위해 확장된 JPA이다.ex) findById , repository 등2. JPAJava Persistence API의 약자로 자바 ORM 표준 명세이며, 표준 인터페이스라고 생각하면 된다.자바에서 데이터베이스에 데이터를 영구히 저장을 도와주는 환경을 제공을 해주는 인터페이스이다.JPA는 하나의 표준으로써 명세이다. 이걸 구현한 Hibernate나 다른 구현체로 언제든지 갈아끼워서 이용할 수 있다.3. Hibernate JPA의 구현체 중 하나이며, Hibernate가 ..
내일배움캠프 46일차 TIL -
·
⛺스파르타코딩클럽
240621오늘의 학습    ●  AccessToken    ●  RefreshToken   Token을 사용하는 가장 간단하면서 대표적인 이유로는 로그인을 유지시키기 위함이다.웹 환경에서는 HTTP 프로토콜 기반으로 사람과 사람이 컴퓨터를 통해 통신을 하게 된다. 여기서 사람과 사람은 클라이언트와 서버가 될 수 있다. 요청을 하는 곳은 클라이언트 요청을 받아서 올바른 요청에 대한 데이터를 전달해주는 곳이 서버이다. 누가 서버고 클라이언트고는 중요하지 않다. 결국 누구나 서버가 될 수 있고, 누구나 클라이언트가 될 수 있다. StatelessHTTP 프로토콜은 Stateless하다는 특징을 가지고 있다.그렇다는건 웹은 HTTP프로토콜 기반으로 동작하기 때문에 웹은 결국 Stateless하다는 것이다.여기..
내일배움캠프 44일차 TIL - 아웃소싱 프로젝트 설계
·
⛺스파르타코딩클럽
240619오늘의 학습    ●  1. 아키텍처 패키지 구조 프로젝트를 설계하며 고민한 부분 아키텍처 패키지 구조스프링 프로젝트의 패키지 구조는 크게 레이어 계층형 구조와, 도메인형 구조 2개가 존재한다. 계층형 구조controller └ UserController └ BoardController └ CommentControllerservice └ UserService └ BoardService └ CommentServicerepository └ UserRepository └ BoardRepository └ CommentRepository계층형 구조는 계층별로 구분을 하여 패키지 전체적인 구조를 알아보기 쉬운 장점이 존재하고, 단점으로는 하나의 디렉터리에 많은 클래스가 존재할 수 있어 프..
내일배움캠프 42일차 TIL - 톰캣, 서블릿
·
⛺스파르타코딩클럽
240617오늘의 학습    ●  1. 톰캣, 서블릿 웹 서버 ( Web Server )HTTP 프로토콜을 기반으로 클라이언트의 요청을 받아주고 정적인 리소스를 제공해주는 역할을 한다.정확히는, 정적 리소스를 WAS에서 받아서 해석해서 클라이언트에게 전달해주는 역할을 한다.  웹 애플리케이션 서버 ( Web Application Server )웹 서버가 존재해야지만 존재할 수 있는 서버이며, 동적인 컨텐츠를 제공해주기 위해 존재하는 서버이다.동적인 컨텐츠로는 DB조회나 다양한 로직 처리 및 계산 등 처리를 해서 웹 서버로 전달을 해주는 역할을 한다. 스프링부트 환경에서 내장 서버스프링부트는 웹 서버 & 웹 애플리케이션 서버를 합친 서버를 내장 서버인 "아파치 톰캣"을 가지고 있다.아파치 제단에서 만든 아..
내일배움캠프 41일차 TIL - Spring AOP
·
⛺스파르타코딩클럽
240614오늘의 학습    ●  1. Spring AOPSpring AOP핵심기능과 부가기능을 관점을 나누어 관점을 기준으로 각각 모듈화를 시켜주자는대부분의 부가기능은 핵심기능을 보조해주는 역할로써 같이 사용하는 경우가 대부분이다. 핵심 기능에 부가 기능을 추가하게 된다면 모든 핵심 기능에 똑같은 부가 기능을 추가해줘야 한다면 모든 메서드에 부가 기능을 넣기에는 많은 힘듦이있을 수 있다. 그래서 이를 해결을 하려면 핵심 기능과 부가 기능을 모듈화를 시켜 분리를 해야 된다.  1. 핵심기능각 API 별 수행해야 할 비즈니스 로직 ( 하나의 API라고 보면 된다. )ex) 상품 등록, 상품 수정, 상품 삭제, 상품 키워드 검색, 관심상품 등록, 회원 가입, 로그인 등등이 있다. 2. 부가기능핵심기능을 보조..
내일배움캠프 40일차 TIL - Spring Test
·
⛺스파르타코딩클럽
240613오늘의 학습    ●  1. 테스트 코드    ●  2. 단위 테스트    ●  3. Given - When - Then 패턴    ●  4. Mockito    ●  5. 자주 사용하는 애너테이션테스트 코드를 작성하는 이유테스트 코드를 작성하지 않고 배포를 진행했다가 추후에 문제가 생기면 사용자에 대한 비용과 운영환경에서의 비용이 기하급수적으로 증가하기 때문에 이러한 문제를 미연에 방지하고자 테스트 코드를 작성하는 것이다.결제 시스템과 같이 버그나 문제가 생겼을 때 비용이 많이 드는 기능들은 반드시 테스트 코드를 작성을 해줘야 한다. 단위 테스트란?작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하는 테스트 기법이다.쉽게 말하면 하나의 기능(메서드)에 대해 독립적으로 진행되는 가장 작은..
내일배움캠프 39일차 TIL - 소셜 로그인 API(OAuth)
·
⛺스파르타코딩클럽
240612오늘의 학습     ●  1.  카카오 소셜 로그인 API    ●  2.  API 요청하기    ●  3.  인가코드 받기    ●  4.  토큰 발급 받기    ●  5.  사용자 정보 가져오기 ( 토큰을 이용 ) 카카오 소셜 로그인 API모든 출처와 참고는 카카오 로그인 REST API 문서에서 가지고 왔습니다.(출처) API 문서 - https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 카카오 소셜 로그인 API 이용하기 전..