코딩 80

맥북 확장 디스플레이 화질 조절

brew install --cask betterdisplay 맥북 프로를 산 이유 중 하나는 두 개의 모니터를 사용하기 위해서였다. 일단 주연테크 4K UHD 모니터 (V28UE)는 딱히 설정할 필요가 없었다.문제는 한성컴퓨터 WQHD 1500R 커브드 게이밍 리얼 100 모니터 (TFG34Q10W)이다.3440x1440의 와이드 모니터이다 보니 그대로 사용하면 글자가 너무 작고, 그 보다 조금 키우게 되면 화질이 너무 안좋아졌다. 좀 찾아보니 맥북에서는 HiDPI 지원되는 사이즈만 고화질을 지원하는것 같았다.하지만 맥북에서 기본으로 지원하는 상태가 아래와 같았다. 3440x1440으로 쓰자니 글자 크기가 너무 작고,2560x1080으로 쓰자니 화질이 너무 안좋고,1720 x 720 (HiDPI)으로 쓰..

코딩/Mac 세팅 2024.05.14

협업을 위한 git 커밋컨벤션 설정하기

https://overcome-the-limits.tistory.com/entry/%ED%98%91%EC%97%85-%ED%98%91%EC%97%85%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-git-%EC%BB%A4%EB%B0%8B%EC%BB%A8%EB%B2%A4%EC%85%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0 [협업] 협업을 위한 git 커밋컨벤션 설정하기들어가며 어떻게 하면 협업을 더 잘할 수 있을까 고민하며 협업에 필요한 내용들을 계속 정리하고 있습니다. 앞으로 저와 함께 협업하는 팀원분들에게 도움이 되고 싶습니다. 이 글은 Udacity Git Covercome-the-limits.tist..

코딩/Git 2024.05.12

Mocking

- 가짜 데이터를 사용하는 방식으로 주로 DB에 실제로 데이터를 넣지 않기 위한 대체용으로 사용된다. 가짜 서비스 (MockingService)를 만들고, providers 부분의 useClass에 MockingService를 넣어준다.import { AppController } from './app.controller';import { AppService } from './app.service';import { Test, TestingModule } from '@nestjs/testing';class MockAppService { getHello(): string { return '나는 가짜다!!!'; }}describe('AppController', () => { let appControl..

코딩/TestCode 2024.04.27

Jest

- nest에는 기본적으로 테스트코드로 유명한 Jest가 깔려있음.src/app.controller.spec.ts 가 있다. - 1개 테스트하기간단하게 aaa.spec.ts 라는 파일을 만들고// 1. 한개 테스트하기it('더하기 테스트', () => { const a = 1; const b = 2; expect(a + b).toBe(3);});(it 뒤에는 테스트 코드 명칭, tbBe()는 내가 예상하는 값)yarn test를 돌려보면이렇게 나온다. 다시 알맞은 예상값인 3으로 toBe를 바꾸고 test를 돌리면정상적으로 테스트가 통과된다. - 여러개 테스트하기// 2. 여러개 묶음으로 테스트하기describe('나의 테스트 그룹', () => { it('더하기 테스트', () => { c..

코딩/TestCode 2024.04.27

.prettierrc, .eslintrc 줄바꿈 변경

nest하는데 줄 바뀌면 코드 지저분해지고 한줄로 보는게 깔끔해 보이는 코드가 줄바꿈 되어서 변경방법을 좀 알아보았다. (nest 기본 설정 파일 기준)- .prettierrc 코드 변경 => printWidth가 추가 되었다. (printWidth 작성하면 80뜨는게 기본이 80인듯){ "singleQuote": true, "trailingComma": "all", "printWidth": 90} 이렇게 하면 줄은 안바뀌는데 줄 안바뀐 코드에 대해서 빨간줄 떠있다. 그 이유는 .eslintrc 설정에서 충돌이 나기 때문.. - .eslintrc 코드 변경 => extends 에서 prettier/recommended 코드를 삭제하는 방법도 있으나 어떤 오류를 만날지 모르니....

코딩/VSCode 2024.04.24

Swagger

- Swagger란 간단히 말해 RestAPI에 대한 설명과 테스트를 해볼 수 있는 사이트를 만드는 것이다. - 설치yarn add @nestjs/swagger  - 세팅main.ts에 swagger에 대한 코드를 작성해야하는데 그러면 main.ts가 지저분해지므로setupSwagger.ts 라는 파일을 만들고 안에import { INestApplication } from '@nestjs/common';import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';export function setupSwagger(app: INestApplication): void { const config = new DocumentBuilder() .setT..

코딩/Nest.js 2024.04.24

Transaction

// 주입 private readonly dataSource: DataSource, // 사용 const queryRunner = this.dataSource.createQueryRunner(); // 생성 await queryRunner.connect(); // 연결 await queryRunner.startTransaction(); // 시작 try { const 작업 = await queryRunner.manager.save(테이블명, 데이터) // 작업 await queryRunner.commitTransaction(); // 커밋 마무리 작업할거 } catch (error) { await queryRunner.rollbackTransaction(); // 롤백 throw new InternalS..

코딩/TypeORM 2024.04.24

2024.04.23

오랜만에 글을쓴다. 오랜만에 밤을 샜다.. 그것도 코딩하느라..ㅎㅎ 뭐 요즘 새벽 4~5시쯤 자기도 해서 밤낮 바뀔조짐이 있긴했는데, 요즘 광인사 1차 프로젝트로 했던 팜팜 사이트 express로 만든 서버를 nest로 변환하는 작업을 하는 중이다. 아무래도 nest 수업들은거 실제로 써봐야할듯 싶기도 하고, 수업은 GraphQL에 대해서 하다보니 RestAPI에 대한 경험도 쌓아보고 싶어서 작업을 시작했었다. 그리고 오늘 아 이제는 어제 저녁이군.. TypeORM 때문에 엄청 스트레스 받으며 엄청나게 시간을 소비했다. 그래서 내 블로그 글에 오늘 갑자기 TypeORM 관련 게시글들이 막 생기기도 했다.. ㅎㅎ 이게 nest 수업에서는 그냥 1:1, 1:N, N:N 연결하는 방법만 알려주고, 게다가 Gr..

사용 방법 예시들

// Module 에서 import imports: [TypeOrmModule.forFeature([Auth, User])],// Service에 주입@InjectRepository(Auth) private readonly authRepository: Repository, // 다른 테이블도 작업하려면 똑같이// @InjectRepository(테이블)// private readonly authRepository: Repository,// 해줘야하는데, 한번에 여러게 하는건 지양한다고 함. 따라서 각각나눠서 service 만들고 처리// 사용 예시 코드들// findOne, where, relationfindOneByUserId({ user_id }: { use..

코딩/TypeORM 2024.04.22

entities

- entities 작성하기 각 api폴더에 entities 폴더 만들고 entities 작성 = 테이블 만든다고 보면됨 ++ 가격 같은거에 제약사항(최소 0 이상) 걸어주려면 글로벌 파이프 설정 필요함 https://springdream0406.tistory.com/89 글로벌 파이프 - 설치 yarn add class-validator class-transformer - main.ts에 GlobalPipe 설정 app.useGlobalPipes(new ValidationPipe()); ++ 추가적인 공부 필요함. springdream0406.tistory.com // 이것저것 짬뽕해서 예시로 넣음 @Entity() export class Farm { @PrimaryGeneratedColumn('in..

코딩/TypeORM 2024.04.22