개발을 하면 Service 단에 일단 @Transactional 을 붙이고 시작하는 경향이 있다. 이번에는 이 @Transactional에 대해서 알아보자. ▶ 트랜잭션이란?@Transactional 어노테이션에 대해 알아보기 전에 트랜잭션이 무엇일까?트랜잭션은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 이다. 여기서 데이터베이스의 상태를 변화시킨다는 것= SQL을 이용하여 DB에 접근하는 것을 의미한다.(SELECT, INSERT, DELETE, UPDATE) 작업 단위에는 이러한 SQL 명령문들이 여러개 존재할 수 있다. 예를 들어서 일기 웹서비스를 예로 들어보자.1. 일기를 쓰고 작성하기 버튼을 누른다.2. 일기 작성이 처리되고 자동으로 일기 목록으로 돌아온다.3. 일기 목록에서 직..
전체 글
위에 사진과 같이 8080포트를 사용하고있지 않은데, 이미 사용중이라고 오류 메시지가 뜰 때가 가끔 있다. 그럴때는lsof -i tcp:8080위 명령어로 어디서 사용중인지 확인할 수 있고, kill $(lsof -t -i:8080)위 명령어로 사용중인 포트를 종료할 수 있다.
아마 개발할 때 DTO 클래스에 toEntity메서드와 from 메서드를 추가한 적이 있을 것이다.그리고 from 메서드에는 static을 붙였을 것이다.오늘은 DTO에 toEntity와 from을 붙이는 이유와 from은 왜 static인지를 알아볼것이다. ▶ 우선 이유 먼저 🔥DTO에서 toEntity나 from 같은 메서드를 추가하는 이유는데이터를 엔티티와 DTO간에 변환할 수 있게 하기 위해서이다.클라이언트로부터 받은 데이터를 엔티티로 변환해서 데이터베이스에 저장하거나,데이터베이스에서 조회한 엔티티를 클라이언트로 보내기 전에 DTO로 변환하는 작업이 필요하기 때문이다. DTO는 데이터를 주고받기 위한 '상자' 라고 할 수 있다.이 상자 안에 있는 데이터를 밖으로 꺼낼때는 toEntity 메서드를..
▶디렉토리 분리이런식으로 도메인을 기준으로 디렉토리를 나눠줬다.공부도 할 겸 헥사고날 아키텍처를 적용해볼까?? 생각도 해봤지만그건 너무 오버 엔지니어링이라는 생각이 들어서 그냥 도메인을 기준으로 계층형 아키텍처를 선택했다. 위 ERD를 바탕으로 Entity코드를 짰다. ▶BaseEntity우선 created_at, updated_at, deleted_at은 자주 사용되기 때문에 BaseEntity에 넣어줬다.@Getter@MappedSuperclass //다른 엔티티 클래스가 이 클래스를 상속받을 수 있게 함@EntityListeners(AuditingEntityListener.class)public class BaseEntity { @CreatedDate @Column(name = ..
▶API 명세서 작성API 명세서 작성을 완료했다.https://fortune-squash-ece.notion.site/Letter-To-Me-API-da31ec7fbd6143e2ade73ec6d4a8d893?pvs=4 [Letter To Me💌] API 명세서 노션 링크 | NotionAPI 명세서fortune-squash-ece.notion.site 위 링크로 들어가면 API 명세서를 확인할 수 있다! 이번 포스팅에서는 API 명세서를 작성하면서 했던 고민들에 대해서 말해보려고한다. ▷열람이 가능한 편지 전체조회, 열람이 불가능한 편지 전체조회 API를 나눈 이유편지 부분을 보면열람 가능한 편지 전체 조회, 열람 불가능한 편지 전체 조회 API를 나눈걸 볼 수 있다. "그냥 편지 전체조회 API..