Skip to content

JW01987/8rello

Repository files navigation

💪 아직 팔팔하조 팀 💪

🚀 프로젝트 개요

🧑‍💻 팀: 아직 팔팔하조 팀

팀장: 한조원

팀원 : 류원희, 유지은, 이재광

📌 프로젝트 명

짭렐로

칸반보드를 이용한 협업 툴 시연영상 링크

🤯 어려웠던 점 & 해결방법

류원희님

🤔 어려웠던 점

  • TypeORM FK 제어
  • 카드 포지션 변경 로직
  • 모달창 내에 파라미터 넘기는 부분

🔧 해결방법

  • TypeORM FK 제어

    TypeORM은 테이블 간 관계설정 하는 내용이 구글링해도 나오는 내용이 별로 없어 힘들었다. 1:N일 경우 N의 엔티티에서 fk 컬럼을 직접 만들어주고 @JoinColumn({name: 'fk_id'}) 데코레이터를 달아주면 편하게 fk를 제어할 수 있다는 걸 알게 되었다.

  • 카드 포지션 변경 로직

    최초 카드 생성 시 포지션 값을 1000단위로 증가해서 생성하고, 포지션 변경 시 앞/뒤 포지션 값의 중간값으로 저장하여 데이터 수정을 최소화하여 해결했다.

  • 모달창 내에 파라미터 넘기는 부분.

    1개의 모달창으로 여러개 카드의 상세정보를 보여주려면 각 카드의 id값을 모달창으로 넘겨줘야 하는데, 모달창 사용 자체가 처음이라 많이 막막했었다. dataset이라는 기능을 이용해서 버튼 내에 id값을 심어주고, 모달창이 열릴 시 event.relatedTarget으로 눌린 버튼의 정보를 가져왔다.

유지은님

🤔 어려웠던 점

  • TypeORM 외래키

🔧 해결방법

  • TypeORM 외래키

    TypeORM을 사용하며 외래키 제약 오류가 계속 발생했는데 , Synchronize 옵션으로 엔티티 클래스와 db 스키마를 자동 동기화 해서 쉽게 해결할 수 있었다.
    하지만 실제 프로덕션 환경에서는 주의해야 할 옵션이라, (데이터에 문제가 생길 수 있음.) Migration을 사용하면 안정적으로 진행할 수 있을것같다.

이재광님

🤔 어려웠던 점

  • Soft-delete에 대한 고민

    이 서비스에서 user를 Soft-delete를 해야할지, 한다면 user를 Soft-delete를 할 때 연관된 board, board와 연관된 column(카드리스트), 카드들을 어떻게 처리할지 고민했다.

🔧 해결방법

user엔티티의 연관관계에서 {cascade:true}나 {onDelete:’CASCADE’} 설정은 user를 물리 삭제(Hard-delete)를 할 경우에 연관된 테이블을 삭제하지만, 논리 삭제(Soft-delete)시에는 작동하지 않는다.

  • 유저가 탈퇴하더라도 보드의 내용들은 유저가 생성한 보드에서 초대된 사람과 공유되고 있을 수 있기때문에 삭제하지 않는다.
  • 탈퇴하더라도 누가 생성했는지 정보를 알 수 있게 하려면 soft-delete를 해야한다.

한조원님

🤔 어려웠던 점

  • 칼럼 위치 변경 로직
  • 엔티티 관계 설정

🔧 해결방법

  • 칼럼 위치 변경 로직

처음에는 데이터를 전부 앞, 뒤로 전부 업데이트 하는 방법밖에 생각이 안나서 난감했다.
아무리 생각해도 너무 비효율 적이라 검색해봤더니 데이터를 추가할때 인덱스의 기본 단위를 크게 잡고 중간에 새 데이터가 들어올때, 앞,뒤 인덱스 값의 중간값을 놔주는 방법을 찾아서 구현했다.

  • 엔티티 관계 설정

코드 예시를 보았을 때 첫번째 파라미터와 두번째 파라미터가 무슨역할을 하는지 이해를 못해서 한참 헤맸다.
데코레이터에서 사용되는 첫 번째 파라미터는 엔터티의 타입을 지정하고, 두 번째 파라미터는 관계를 설정할 필드를 선택하는 역할을 한다.

//User
@OneToMany(() => Post, (post1) => post1.user2)
myPosts: Post[];

// Post
user2:User

🌟 완성 소감

류원희님

팀원 분들 모두 열심히 해주셔서 협업 과정이 정말 즐거웠습니다.
우리 팀원분들과 또 다시 협업할 기회가 있었으면 좋겠습니다.

유지은님

예상치 못한 오류가 발생했을때(특히 typeORM) 난감했지만
팀원분들의 도움으로 잘 진행할 수 있어서 행복했다 🙂

이재광님

낯선 기술들로 프로젝트를 진행하다 보니 익숙해지는데 시간이 걸렸다.
하지만 익숙한 회원가입/로그인을 맡아서 빨리 적응했던 것 같다.
팀원들의 타입스크립트 과제를 많이 참고했다. 좋은 팀원들 덕분에 재밌는 시간이었다.

한조원님

프론트가 언제나 제일 어렵다...
팀원과의 소통과 지식공유가 잘 되어서 좋다

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •