본문 바로가기
728x90

전체 글410

Github Project 칸반 칸반이란? 팀과 조직이 작업을 시각화하고, 업무의 병목 현상과 리소스 낭비를 해결하는 업무 관리 방법이다. 칸반 보드를 통한 시각화 업무를 한눈에 파악할 수 있게 되어 팀원 간에 서로 어떤 일을 하고 있는지 투명하게 확인할 수 있고, 종합적이고 빠른 업무 흐름 파악이 가능하다. Work In Progress(WIP)로 진행중인 업무 제한 및 흐름 관리 WIP는 현재 진행하고 있는 작업을 의미한다. 칸반에서는 각 업무 단계에 WIP 제한(WIP limit)을 둘 수 있다. 예를 들어 WIP 제한이 2이면, 두 개 이상의 카드가 해당 열에 위치할 수 없게 된다. WIP 제한은 한 번에 처리하는 업무의 양을 최소화하여 팀원이 한 번에 여러 업무를 동시에 진행해서 생기는 맥락 전환의 문제를 방지하고, 업무 흐름.. 2022. 12. 18.
Github Repository Github Repository에 꼭 필요한 파일 README.md README.md에 꼭 포함해야 하는 정보 프로젝트 이름 핵심 기능 소개 팀원 소개 .gitignore gitignore dotfile은 git으로 관리하지 않는 파일을 모아놓은 곳을 말한다. 보통 개인이 따로 관리해야 하는 중요한 secret token이나, 다른 동료와 공유할 필요가 없는 파일을 기록한다. git은 이 파일 모음을 파악하지 않고, push할 때도 github 리포지토리에 push되지 않는다. LICENSE 해당 코드의 라이센스를 표기한다. 깃허브에 public하게 공개된 repository도 라이센스에 따라 사용할 수 있고, 하지 못 할 수 있기 때문에 라이센스를 잘 확인하여 사용해야한다. 외부에 공개하지 않는 pri.. 2022. 12. 18.
코드스테이츠 백엔드 부트캠프 프리 프로젝트 전 회고 끝을 향해. 벌써 프로젝트라니 믿기지 않는다. 솔직히 얘기하면 아직도 많이 부족하다. 한 달 전에 비해 많이 좋아졌지만 아직 프로젝트를 진행할 실력은 아니라고 생각한다. 부딪혀보는 수밖에 없다. 다행히 긍정적인 부분도 있다. 프로젝트 직전 아주 간단한 구현 내용으로 솔로 프로젝트를 진행해봤다. 기본 토대는 이전에 공부한 내용을 많이 참고하긴 했지만 꽤 성공적으로 끝냈다. 처음부터 스스로 쌓아 올린 코드라서 그런지 애착이 많이 간다. 한 달 전과 비교해보면 많이 좋아지긴 했다! 이제 내일부터 본격적인 프로젝트의 시작이다. 함께 할 팀원분들이 누가 될지 궁금하기도 하고, 팀원분들께 짐이 되지 않기 위해 열심히 해야겠다는 생각도 든다. 많이 떨린다. 지금 시점에서 생각하면 아마 수료 후 곧장 취업은 힘들 것 .. 2022. 12. 14.
트랜잭션 전파(Transaction Propaganda) & 트랜잭션 격리 레벨(Isolation Level) 1분 요약 정리 트랜잭션 전파(Transaction Propaganda) 트랜잭션의 경계에서 진행 중인 트랜잭션의 존재 여부에 따라 어떻게 동작할 것인지 결정하는 방식으로 propagation 애트리뷰트를 통해서 설정할 수 있다. @Transacional(Propagation.REQUIRED) 일반적으로 가장 많이 사용되는 Propagation 유형의 디폴트 값이다. 진행 중인 트랜잭션이 있으면 해당 트랜잭션에 참여하고, 없으면 새로 트랜잭션을 시작한다. Propagation.REQUIRES_NEW 이미 진행중인 트랜잭션과 무관하게 새로운 트랜잭션이 시작되며, 기존의 트랜잭션은 새로 시작된 트랜잭션이 종료할 때까지 중지된다. Propagation.MANDATORY 진행중인 트랜잭션이 없으면 예외를 발생시킨다. Propa.. 2022. 12. 4.
JPA - 엔티티와 테이블 매핑시 주의 사항 클래스 이름 중복 등의 이슈가 없으면 @Entity, @Id만 사용 만약 엔티티 클래스에 테이블 스키마 명세의 역할을 부여하고 싶다면 @Table 애너테이션으로 테이블명을 지정 기본키 생성 전략에서 데이터베이스에서 지원해주는 AUTO_INCREMENT, SEQUENCE를 이용할 수 있도록 IDENTITY, SEQUENCE 전략을 사용 @Column 정보를 명시적으로 모두 지정하는 것은 번거롭지만 유지보수성에 좋음 엔티티 클래스 필드 타입이 Java의 원시 타입일 경우 @Column 애너테이션으로 최소한 nullable=false를 설정해야 오류를 피할 수 있음 원시타입은 null값을 가질 수 없기 때문 enum 순서가 개판되는걸 피하기 위해서는 @Enumerated.STRING을 사용하자. 2022. 11. 29.
JPA - 다양한 연관관계 매핑 다대일 단방향 DB 테이블 설계 상 '다'쪽에 외래키가 있어야 한다. 가장 많이 사용하는 연관관계이다. 반대는 일대다 관계이다. 다대일 양방향 객체 연관관계에서 '일'쪽에 추가만 해주면 되고 단순 조회만 가능하다. 외래키가 있는 쪽이 연관관계의 주인이라고 생각하면 된다. 양쪽이 서로를 참조하도록 개발한다. 일대다 단방향 일대다 단방향은 일대다에서 '일'이 연관관계의 주인이다. 테이블 일대다 관계는 항상 '다'쪽에 외래키가 있다. 객체와 테이블의 차이 때문에 반대편 테이블의 외래키를 관리하는 특이한 구조이다. Team(1)과 Member(N) 테이블이 있다고 가정할 때 Team 테이블이 연관관계의 주인이다. 하지만 DB에서는 설계상 무조건 '다' 쪽에 외래키가 들어가야 한다. Team 객체는 외래키를 가지.. 2022. 11. 28.
JPA - 연관관계 매핑시 고려사항 3가지 연관관계 매핑시 고려사항 3가지 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany 단방향, 양방향 테이블 외래키 하나로 양쪽 조인 가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향(사실 양방향이라는 건 없음, 단방향이 두개인 것) 연관관계의 주인 테이블은 외래키 하나로 두 테이블이 연관관계를 맺는다. 객체 양방향 관계는 참조가 양쪽에서 일어난다. 때문에 둘 중에 테이블의 외래키를 관리할 곳을 지정해야한다. 연관관계의 주인은 외래키를 관리하는 참조 쪽으로 한다. 주인의 반대편은 외래키에 영향을 주지 않고 단순 조회만 가능하다. 참고 김영한 - 자바 .. 2022. 11. 28.
JPA - 연관관계 매핑 객체를 테이블에 맞춰 데이터 중심으로 모델링을 하면 협력 관계를 만들 수 없다. 테이블은 외래키로 조인을 사용해서 연관된 테이블을 찾는다. 따라서 테이블은 외래키 하나만 가지고 양쪽에서 조인을 통하여 연관된 테이블을 찾을 수 있다. 객체는 참조를 통해서 연관된 객체를 찾는다. 객체는 양쪽 모두 참조 설정을 해야 양방향 매핑이 가능하다. 이는 테이블과 객체의 큰 차이점으로 연관관계 매핑을 이해하는 데에 어려움을 야기한다. 객체의 단방향 연관관계 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; private int age; @ManyToOne @Join.. 2022. 11. 27.
728x90