전체 글

·TIL/CS
RDBMS의 정규화에 대해 설명해주세요.Primary Key, Foreign Key에 대해 설명해주세요. RDBMS의 정규화란 데이터를 DB에 규칙에 맞게 정리하는 과정입니다정규화를 하는 이유는 관계 집합에서 중복을 최소화 하는데 있습니다또한 데이터의 삽입, 수정, 삭제시 발생가능한 이상현상을 방지할 수 있습니다정규화는 단계적 적용이 가능한 깊이가 존재합니다1차 정규화, 2차 정규화, 3차 정규화, BCNF 정규화, 4차 정규화 각 정규화 단계1NF : 테이블의 모든 열에는 원자값만 포함2NF : 부분적 종속성을 제거한다3NF : 이행적 종속성을 제거한다BCNF 정규화 : 모든 결정자가 후보 키인 상태입니다4NF : 복잡한(다중) 종속성을 제거추가 키워드삽입 , 수정, 삭제 이상부분적 종속성이행적 종속성..
·TIL/CS
대략적이 이해 : RDB는 엄격한 schema로 인해 데이터 중복이 없기 때문에 데이터 update가 많을 때 유리하고, NoSQL은 데이터 중복으로 인해 update 시 모든 컬렉션에서 수정이 필요하기 때문에 update가 적고 조회가 많을 떄 유리하다. No SQL 과 RDBMS의 차이 RDBMSRDBMS : 관계형 데이터베이스 관리 시스템의 약자 RDB : 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터 베이스 관계를 나타내기 위한 개념으로 외래 키를 사용 테이블 간의 관계에서 외래 키를 이용하여 테이블끼리 Join이 가능하다는 특징이 존재 SQL이라는 언어를 통해 정교한 검색 쿼리를 통해 데이터를 다룬다Transaction 을 통해 작업의 완전성을 보장반드시 ..
·TIL/Web Back
팀 프로젝트 소개한 줄 정리 : 유저들이 자신의 하루에 대한 게시글을 올려서 서로 공유하고 댓글을 달면서 소통할 수 있는 SNS 사이트내용 :- 로그인 기능이 있어 유저별로 개인 식별이 가능하고 각자의 프로필을 설정할 수 있다.- 로그인을 한 유저라면 댓글을 달아 서로 소통할 수 있으며 자신의 댓글을 삭제하거나 수정할 수 있다.- 관리자는 백오피스에서 한번에 사이트를 관리할 수 있다.- 로그인을 하지 않아도 사이트 이용이 가능하지만, 사이트에 있는 내용을 조회만 할 수 있다.- 유저마다 자신의 고유한 페이지가 있으며 각 유저의 페이지에서 특정 유저의 게시글 조회가 가능하며 전체 페이지에서 모든 게시글을 확인하거나 자신이 팔로우한 유저들의 게시글만 확인하는 것도 가능하다. 팀 프로젝트 깃 허브 링크http..
·TIL/Web Back
관리자 권한 게시글 기능 오류발생 : 실제 오류나 exception은 없는상황인데 요청 api가 컨트롤러단까지 오지 않는 상황  http.authorizeHttpRequests( (authorizationHttpRequests) -> authorizationHttpRequests .requestMatchers(HttpMethod.POST, "/api/users/signup").permitAll() .requestMatchers(HttpMethod.POST, "/api/users/login").permitAll() .requestMatchers(HttpMethod.GET, "/api/users/{userId}/pr..
·TIL/Web Back
게시글 CRUD post 생성 작업 request를 받을때, title / contents 만 입력으로 받고 고정여부는 자동으로 false로 된 채로 만들어지게 하고싶은상황post 생성자로 entity를 만들때 req만 받아서 isfalse로 하도록 할지... >> 생성자에서 dto 객체를 통으로 받아 동작하는건 좋지않다고 들었던거 같아서 코드 수정 @Entity 클래스 자체에는 빌더를 선언할수 없지만 생성자에 한정으로 빌더 패턴 가능!@Builderpublic Post(String title, String contents, boolean isPinned, PostType postType) { this.title = title; this.contents = contents; this.is..
·TIL/Web Back
- S A 작성 - 게시글 CRUD 담당 1. 주제 정하기 : SNS 사이트 프로젝트 2. API 작성해보기 : 게시글의 CRUD 기능에 대한 것  Controller단의 response 형식 : ResponseEntity 사용하기dto 형식 : CommonResDto 객체 (공통 응답 객체) 만들어서 다같이 응답 형식 통일하기 토큰 발급 형식 : 액세스와 리프레시 토큰을 동시에 발급하지않아야 한다 (이전 프로젝트는 로그인과 동시에 발급을 줌) (로그인) > 액세스 토큰 발급 > 동작 > 액세스 토큰 만료 > 리프레시 토큰 발급 > 액세스 토큰 재발급? 게시물 생성, 수정, 삭제의 경우 URL : userId가 필요한줄 알았지만, header의 token값에 유저 정보가 담겨있기 때문에 필요 X  프로젝..
·TIL/Web Back
심화주차 개인과재 해설 세번째 테스트 TodoController@ActiveProfiles("test")@WebMvcTest(TodoController.class)@TestInstance(TestInstance.Lifecycle.PER_METHOD)class TodoControllerTest extends ControllerTest implements TodoTest { @MockBean private TodoService todoService; @DisplayName("할일 생성 - 성공") @Test void postTodo() throws Exception { // given // when var action = mockMvc.perform(post("/api/todos") .conten..
·TIL/Web Back
심화주차 개인과제 해설 > 테스트는 우리가 작성한 코드가 의도대로 동작하는지 체크하는데 의미가 있다(getter, setter 같은 것들은 의미없음) > 테스트도중 테스트코드 본문에는 단순 리터럴 상수가 보이는건 좋지않다일반적으로는 interface를 활용해서 사용자정의 상수를 만들고 그것을 테스트코드에 활용 첫번째 테스트(UserRequestDtoTest)class UserRequestDTOTest implements CommonTest { @DisplayName("유저 요청 DTO 생성") @Nested class createUserRequestDTO { @DisplayName("유저 요청 DTO 생성 성공") @Test void createUserRequestDTO_success() { /..
·TIL/Web Back
Spring 심화 1주차 - Spring Test 코드 작성법 -- Spring AOP -
·TIL/Web Back
Spring 숙련 2주차 개념 복습 RestTemplate이란 지금까지는 Client 즉, 브라우저로부터 요청을 받는 서버의 입장에서 개발을 진행해왔습니다.서비스 개발을 진행하다보면 라이브러리 사용만으로는 구현이 힘든 기능들이 무수히 많이 존재합니다.예를 들어 우리의 서비스에서 회원가입을 진행할 때 사용자의 주소를 받아야 한다면?주소를 검색할 수 있는 기능을 구현해야하는데 직접 구현을 하게되면 많은 시간과 비용이 들어갑니다.이 때, 카카오에서 만든 주소 검색 API를 사용한다면 해당 기능을 간편하게 구현할 수 있습니다.이럴 때 우리의 서버는 Client의 입장이 되어 Kakao 서버에 요청을 진행해야합니다.Spring에서는 서버에서 다른 서버로 간편하게 요청할 수 있도록 RestTemplate 기능을 제..
헤르로우워르드
부지런한