📂 Engineering/🔹 Server & Backend10 TDD 2부 - xUnit 예시 Xunit 예제 (매우 요약된)테스팅 프레임워크 만들기 테스트 메서드를 호출하게 한다. setUp, tearDown을 호출한다. 결과를 출력한다. 테스트 여러 개를 실행시킨다 느낀 점 저는 평소에 자바의 Junit와 Mockito를 굉장히 많이 쓰는 편입니다. 그러다 보니 "와 테스트 프레임워크 엄청 잘 만들어놨다. 이걸 어떻게 만들었지?" 라고 생각하곤 했습니다. 하지만 mock지원을 빼고 단순히 테스팅 프레임워크만 봤을 때는 지원할 기능이 생각보다 간단하더라구요. 극단적으로 요약해보면 몇가지 안 되는 것 같습니다.(물론 xUnit이라는 프레임워크에 한정된 이야기일 수는 있지만) 내가 테스트하고 싶은 메소드를 실행시키고 setUp과 teadrDown을 실행시키고 테스트 실행 결과를 확인한다. 뿐만 아니.. 2024. 2. 12. 데이터베이스에 중복 생성이 되지 않게 하는 방법은? 문제 상황 기술 면접 중, 동시성 문제와 관련해서 내가 짠 로직으로는 아이디가 중복 생성이 가능해보인다 라는 피드백을 받았다. 코드를 작성할 때는 몰랐지만, 막상 면접에서 보니 그럴만 하다는 생각이 들었다. (해당 코드는 맨 아래에 첨부하겠습니다) 그래서 이걸 어떻게 하면 중복 생성을 막을 수 있을까 여쭤보셨고 난 다음과 같이 말씀드렸다. 음~ 테이블에서 계정명을 기준으로 SELECT하는 부분부터 생성하는 부분까지 하나의 트랜잭션으로 묶어서 관리하면 될 것 같습니다! ㅎㅎ 그런데 SELECT하는 쿼리는 LOCK이 안 걸리니, PK같은 거로 설정하면 어떨까 말씀해주셨다. 그 당시에는 ㅇㅈ. 하고 넘어갔지만 곰곰히 생각해보니 "보통 VARCHAR로 PK를 하나? UNIQUE가 낫지 않나?" 라는 의문이 들었.. 2022. 9. 20. [postgresql] docker-compose에서 지정하는 환경변수 목록 POSTGRES_PASSWORD POSTGRES_USER POSTGRES_DB POSTGRES_INITDB_ARGS POSTGRES_INITDB_WALDIR POSTGRES_HOST_AUTH_METHOD PGDATA 출처: https://hub.docker.com/_/postgres 2022. 3. 24. [DB, Docker] 2003, Can't connect to MySQL server on 'localhost' 문제상황 FastAPI에서 sqlalchemy를 이용해 db와 연결하던 중 테스트를 위해 local에 연결하였는데, 다음과 같은 에러가 발생했었다. sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 99] Cannot assign requested address)") (Background on this error at: https://sqlalche.me/e/14/e3q8) 원인(추정) mysql 컨테이너가 docker 내부 네트워크를 사용해서 다른 컨테이너에서 접근이 불가능 해결 방법 # 기존 코드 LOCAL_SQLALCHEMY_D.. 2021. 12. 25. 이전 1 2 3 다음