Jiihyun's log
close
프로필 배경
프로필 로고

Jiihyun's log

  • 분류 전체보기
    • CS
      • DB
    • Spring
    • [Mingle] Project
    • Reflection
    • Clean code
    • Language
      • Java
      • Kotlin
DTO는 무엇이고, 왜 필요할까?

DTO는 무엇이고, 왜 필요할까?

들어가며현재 콩콩밥밥이라는 스터디를 통해 초록 스터디의 스프링 입문과정에 참여하고 있습니다.미션으로 방탈출 프로그램의 예약 CRD API를 구현하던 중, 단순히 View에 전달해야 하는 데이터가 Entity의 모든 필드와 동일하다는 이유로 Controller 메서드의 반환값으로 Entity를 그대로 사용했습니다.@RestController@RequestMapping("/reservations")public class ReservationController { private final ReservationService reservationService; public ReservationController(final ReservationService reservationService) { ..

  • format_list_bulleted Spring
  • · 2025. 2. 22.
  • textsms
PUT, PATCH의 차이점 (feat. 멱등성)

PUT, PATCH의 차이점 (feat. 멱등성)

들어가며현재 콩콩밥밥이라는 스터디를 통해 초록 스터디의 스프링 입문과정에 참여하고 있습니다.미션을 구현하며 API를 설계하던 중, 값을 수정해야 하는 상황에서 관성적으로 HTTP Method로 PUT을 사용해왔다는 점을 깨달았습니다.이를 계기로 PATCH와 PUT의 차이점은 무엇인지? 왜 PUT method를 더 선호하는지? 에 대해 알아보고자 합니다. PUTRFC 문서에 의하면 PUT의 정의는 다음과 같습니다:The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message cont..

  • format_list_bulleted Spring
  • · 2025. 2. 15.
  • textsms

DB 스터디 회고

스터디 간략 소개이름: JSCODE 모의면접진행 기간: 2025년 1월 한 달 (5주)진행 방법:매주 하나의 큰 주제가 정해지며, 그 주제에 맞는 면접 예상 질문 10~20개가 주어진다.따라서 질문에 잘 답변할 수 있도록 글을 정리해와야 한다.매주 금요일에 비대면으로 2시간동안 스터디원들과 지원자, 면접자, 관찰자(시간 및 질문 기록) 역할을 돌아가며 진행한다.한 사람당 대략 15분 정도 면접을 진행하며, 면접 후에는 스터디원들이 피드백 해주는 시간을 가진다.이 때 현업에 종사하시는 멘토님이 중간중간 참여해 면접자 역할을 해주실 뿐만 아니라,스터디하며 궁금했던 질문에 대한 답변을 해주신다.스터디 신청 계기개인적으로 팀 프로젝트를 진행하면서, DB관련 에러을 많이 마주쳐 학습의 필요성을 많이 느꼈었다(트랜..

  • format_list_bulleted Reflection
  • · 2025. 2. 4.
  • textsms
[DB] 트랜잭션

[DB] 트랜잭션

트랜잭션이란?데이터베이스에서 하나의 논리적 기능을 수행하기 위해 필요한 연산들을 묶는 단위-> 필요한 연산들을 모두 완벽하게 처리(commit)하거나,처리하지 못한 경우에는 원 상태로 복구(rollback)하여 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능 커밋(Commit)이란?모든 작업들을 성공적으로 처리되었다고 확정하는 명령어=> 트랜잭션 내에 변경된 내용을 DB에 영구 저장하겠다는 의미이며, commit을 수행하면 하나의 트랜잭션이 성공적으로 종료된다.Auto Commit:  사용자가 Commit 명령을 따로 하지 않아도, 모든 단건의 쿼리마다 자동으로 COMMIT이 실행되어 데이터베이스에 영구적으로 반영되도록 하는 명령예를 들어 A가 B에게 송금하려면 아래와 같은 작업이 발생하는데..

  • format_list_bulleted DB
  • · 2025. 1. 29.
  • textsms

[DB] Connection & DB Session

데이터베이스 환경에서 커넥션(Connection)과 세션(Session)은 서로 밀접하게 연관된 개념이지만, 엄밀하게는 다른 의미를 가지고 있다.이에 각각의 개념은 무엇이고 어떤 관계를 가지고 있는지 알아보도록 하겠다.Connection이란?클라이언트와 데이터베이스 서버 간의 물리적인 경로를 의미한다.즉, 클라이언트와 데이터베이스 서버 간의 통신할 채널(e.g. port 등)이 열리면서 네트워크 레벨 통신이 성립되는 것을 말한다. DB Session 이란?커넥션이 성공적으로 만들어진 이후의 클라이언트와 데이터베이스 서버 간의 상호작용을 의미한다.이로인해 세션 내에서 사용자의 모든 트랜잭션, 쿼리 등의 작업이 이루어지며, 세션은 DB 쿼리 실행 상태나 트랜잭션 맥락을 유지하는 논리적 컨텍스트이다. 커넥션..

  • format_list_bulleted DB
  • · 2025. 1. 27.
  • textsms
[DB] 정규화

[DB] 정규화

데이터베이스 정규화(normalization)란?데이터를 연관성이 있는 속성들로만 구성되도록 분해해서, 삽입, 삭제, 갱신 이상 현상이 발생하지 않는 올바른 릴레이션(table)으로 만들어 나가는 과정 => 데이터 중복을 줄이고 데이터 무결성 개선 가능 정규화 종류각 정규형마다 만족시켜야 하는 제약조건이 존재하며, 정규형의 차수가 높아질수록 제약조건이 엄격해진다.그렇지만 대부분은 BCNF정규형까지 만족시키면 이상 현상이 없어지기 때문에 그 이상 분리하지는 않는다고 한다. 제1 정규형 (1NF)릴레이션에 속한 모든 속성의 도메인이 더는 분해되지 않는 원자 값(atomic value)으로만 구성되어 있음=> 속성이 다중값을 가지면 안됨제2 정규형 (2NF)릴레이션이 제1정규형에 속하고, 기본키가 아닌 모든 ..

  • format_list_bulleted DB
  • · 2025. 1. 23.
  • textsms
[DB] 인덱스 정의, 동작 방식, 종류 등 톺아보기(MySQL 기준)

[DB] 인덱스 정의, 동작 방식, 종류 등 톺아보기(MySQL 기준)

인덱스란?인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다.책으로 비유하자면, 책의 맨 앞 또는 맨 뒤에 있는 색인을 데이터베이스의 index라 볼 수 있다. 목적데이터베이스에서 원하는 값을 찾고자 할 때 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에, 데이터와 데이터의 위치(주소)를 포함한 자료구조(=인덱스)를 생성하여원하는 데이터를 빠르게 조회하기 위함이다. 그렇다면 인덱스 항상 많이? ㄴNO!인덱스를 관리하기 위해서는 DB에 약 10%의 저장공간이 필요하며인덱스를 관리하기 위해 INSERT, UPDATE, DELETE시 추가 쓰기 작업이 필요하다(자세한 내용은 인덱스 동작 방식에 서술) 또한 인덱스를 잘못 사용하면 오히려 ..

  • format_list_bulleted DB
  • · 2025. 1. 14.
  • textsms

[DB] JOIN 알아보기

JOIN두 개 이상의 테이블을 연결하여 하나의 결과 집합으로 만드는 연산조인의 처리에서 어느 테이블을 먼저 읽을지를 결정하는 것은 상당히 중요하며, 그에 따라 처리할 작업량이 상당히 달라진다INNER JOIN: 교집합 => 두 테이블이 모두 가지고 있는 데이터만 검색됨OUTER JOIN: FULL OUTER JOIN의 경우 빼고는 특정 테이블을 기준으로 데이터를 보여준다LEFT OUTER JOIN: 왼쪽 테이블을 기준으로, 왼쪽 테이블의 모든 데이터와 왼쪽*오른쪽 테이블의 중복데이터들을 보여줌RIGHT OUTER JOIN: 오른쪽 테이블을 기준으로, 오른쪽 테이블의 모든 데이터와 왼쪽*오른쪽 테이블의 중복데이터들을 보여줌FULL OUTER JOIN: 왼쪽 테이블과 오른쪽 테이블의 합집합을 얻음=> 만약..

  • format_list_bulleted DB
  • · 2025. 1. 9.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
전체 카테고리
  • 분류 전체보기
    • CS
      • DB
    • Spring
    • [Mingle] Project
    • Reflection
    • Clean code
    • Language
      • Java
      • Kotlin
최근 글
인기 글
최근 댓글
태그
  • #presigned url
  • #ResponseEntity
  • #멱등성
  • #aws sdk v2
  • #HTTP 응답
  • ##객체 지향 5원칙
  • #HttpMessageConverter
  • #dispatcher servlet
  • #s3 presigner
  • #Data Transfer Object
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.