개발을 하면 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..