Skip to content

피어세션

youngxpepp edited this page Nov 13, 2020 · 3 revisions

참여자

25조

  • J209 최창희

40조

  • J032 김도호
  • J132 이건홍

궁금했던 점

  • TypeORM
  • 배포
  • 프로젝트 진행 방식
  • 인증 정보 관리
  • 팀원간 의견 불일치
  • 테스트

TypeORM

트랜잭션 관리 방법

  • Sequelize의 트랜잭션 사용방법은 조금 불편했음..
const transaction = await sequelize.transaction();
try{
	find(..., transaction);
	create(..., transaction);
}
...
return

바로 제가 원했던 그것!!

@Transactional(propagation, isolation level) // https://github.com/odavid/typeorm-transactional-cls-hooked
async updateIssue() {}
  • 시퀄라이즈에 비해 코드도 굉장히 직관적이고 편리함.

타입 스크립트 없이 TypeORM을 사용할 수 있나요?

  • 타입스크립트 없이 사용하면 custom repository를 사용하지 못하는 제한점이 있긴함.
const user = userRepository.create({id: 0, name: "aa"});
// new User() x
// user 내부 프로퍼티 자동완성이 돼요

연관 관계 관리 방법

  • 관계 설정을 어노테이션으로 처리할 수 있음.
  • eager loading & lazy loading (: Promise<Issue[]> )
const User = await userRepository.findOne(id, {relations: ["comments"]});
await userRepository.createQueryBuilder("user")
    .innerJoinAndSelect("user.issues", "a")
    .getMany();

배포

  • 오늘 문제가 있었던 이유? 데이터베이스 스키마 관리와 연관이 있어 보임.
  • 서버에서 주기적으로 crontab git 마지막 커밋 비교?
  • 커밋에 태그를 붙이면 배포가 됨
  • PR에 build, 실행이 안되는 경우!!! develop

테스트

  • 실제 DB 테스트 vs Mocking ?
  • 서비스
    • 실제로 DB에 값이 있고 원하는 값이 맞는지 비교를 진행함
    • 서비스 로직에 필요한 다른 부분을 Mocking 하려면 흐름을 예상해야 하는데... 그게 불가능하다고 생각했음
    • Mocking을 하게 되면 나중에 데이터가 변경됐을때 Mocking 데이터도 수정해줘야 하고 변경점이 늘어나는 것 같다.
    • Mocking을 하지 않으면 의존성이 심하게 걸릴 수도 있다.

프로젝트 진행 방식

  • 같이 작업 vs 각자 작업
  • Squash Merge (연속적인 개발이 어려울 수 있지만, 커밋 관리가 깔끔해지고, 기능 단위로 롤백 시점을 정할 수 있다.)

5주차때 뭘 해보고 싶으신가요??

  • MSA (안할거임...)

  • Typescript

  • NestJS, Koa

  • Redis 같은걸로 캐싱 적용?

  • 쿠버네티스 ㅎㅎㅎㅎㅎ!!

  • 도커

  • Storybook

  • 5주차때는 백엔드 / 프론트 파트를 나눠서 하고 싶으신가요?

    • 건홍: Yes!!
Clone this wiki locally