{fix (에러 관리), feat(기능 추가), comment(주석 추가), chore (버전관리) }
이제 깃허브 현업이라 생각하면서 커밋하고 브랜치 관리하는 것까지 해볼 예정이다.
독학 멘토에게 포크 떠서 코드 pr해서 리뷰도 받기로 함.
지금 당장 해야할 것: CRUD 구현이니까 CRUD 별로 브랜치 4개로 쪼개서 커밋해야겠다.
(서로 파일 안건드리도록 극도로 조심해야지.. 파일 충돌나면 어캐 해결할지도 모를듯..)
그리고 커밋도 엄청 자주 해야함
어제 CREATE + 에러핸들링까지 했으니 나머지 브랜치를 만들어야지.
예를 들어 READ 일 경우에는 브랜치 명을 뭐로 해야할까?
아무튼 깃허브 브랜치 이름도 나름 룰이 있을 것 같아서 구글링해봄.
음.. 이런건 한글 문서 봐도 되겠지?
https://velog.io/@kim-jaemin420/Git-branch-naming
여기 설명 잘되어있다!!
커밋 메시지 넣는 법
출처: https://jason-api.tistory.com/89
https://meetup.toast.com/posts/106
일단 음.. 일단 난 feature branch를 만들어야겠다.
Create는 이미 메인에 병합되어있으니
feature-Read
feature-Update
feature-Delete
브랜치를 만들어야징
코드 짤 때 브랜치 헷갈리지 않게 조심..
개뻘짓했다 진짜
설정 방법이 왜케 많지..? 막 섞여서 더 혼란해졌다.
dotenv 도 있고 config방식도 있는데
처음에는 공식문서 만 보고 뚝딱할 줄 알고 만만하게 봤다.
후우.. 근데 내가 아직 공식문서라던가.. 그런 곳에서 제대로 적용하는 방법도 잘 모르고, 모르겠다고 구글링을 그냥 보이는 대로 중구난방으로 문서 섞어서 하니까 시간 겁나 많이 날렸다.
일단 젤 간단해보이는 법도 되긴 되나 싶어서
https://bluehorn07.github.io/2021/03/04/introduce-env-in-nestjs.html
요기 링크대로 하는데 왜 대체 왜 머가 문제냐
아니
저 목록들이 떠야하는데 왜 TZ? 밖에 안뜨고 직접 써도 못읽어오지..
하.. 구글링할 때 문서마다 내용도 방법도 쓰는 DB도 다 다르고 공식문서도 전혀 어떻게 적용해야할 지를 모르겠어서 한참 헤맸다.
그러면서 코드가 짬뽕이 되어서 더 수렁으로 빠진 것 같다.
일단
1. config 이고 뭐고 자시고 제일 베이직한 것을 써보자 -> dotenv
사용해보자
2. 중구난방으로 조잡하게 코드를 짜집기 하면서 이랬다 저랬다 하지말고 (나쁜 행동 같다. 될 것도 안되게 하는 행동임) 우직하게 제대로 한방을 노리면서 시도해보자.
3. 열린 탭키가 여러개고 보는 문서가 난잡하니까 모두 닫았다. (정신없는데 더 정신 없어짐)
4. 구글링 키워드를 정확히 명시해서 다시 찬찬히 내 상황에 맞는 코드가 있는지 살펴보자
참고로 여기 문서에는 삽질하면서 봤던 문서는 최대한 배제하고 실제로 도움이 되었던 문서만 아카이브할 것임.. 지금도 너무 링크 잔뜩 덕지덕지 붙어있고 형식도 개판이고, 너무 의식의 흐름이라서 글을 어떻게 정리해야하나 좀 고민이다.
https://www.ronenagranat.com/2021-03-01/nestjs-typeorm-environment-config-migration.html 보고 했다.
솔직히 제대로 차이는 모르겠지만 대충 배포할 때 환경변수를 어디쪽에 넣을 것이냐...의 문제
Try 1
에 있는 방식은 인프라팀에서 고생하지만 나는 편함
지금 Try 3
에서 코드가 좀 더 여러 단계로 나눠서 일일이 코드를 바꾸지 않아도 알아서 넣어줌
// .env
DATABASE_USERNAME=root
DATABASE_PASSWORD=모자이크
DATABASE_PORT=3306
DATABASE_HOST=localhost
DATABASE_NAME=blog
// src/databaseConfig.ts
import * as path from 'path';
import * as dotenv from 'dotenv';
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
const env = process.env.NODE_ENV || 'dev';
const dotenv_path = path.resolve(process.cwd(), `env/.${env}.env`);
const result = dotenv.config({ path: dotenv_path });
if (result.error) {
/* do nothing */
}
export const DatabaseConfig = {
type: 'mysql',
// driver: 'mysql',
database: process.env.DATABASE_NAME || 'blog',
port: parseInt(process.env.DATABASE_PORT) || 3306,
username: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
host: process.env.DATABASE_HOST,
synchronize: true,
migrationsRun: false,
entities: [__dirname + '/**/*.entity{.ts,.js}'],
migrations: ['dist/migrations/**/*{.ts,.js}'],
cli: { migrationsDir: 'src/migrations' },
} as TypeOrmModuleOptions;
export default DatabaseConfig;
이러고 앱모듈에서
// import 어쩌구
@Module({
imports: [TypeOrmModule.forRoot(DatabaseConfig), BlogModule, AuthModule, UserModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
이렇게 설정해주면 됨
내일 Todo: 앱모듈 코드 추가하기
config 파일 해설 추가하기
깃허브 링크
Try 3
하고 나서 Try 1
도 돌아가는거 확인해보고 싶어서 코드 수정해놓고 봤음.
근데 깃허브에 올린 버전으로 다시 돌아가고 싶어서 또 뒤벼보는중..
Git Discard Unstaged Changes
라고 검색하니까
https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/remove-revert-discard-local-uncommitted-changes-Git-how-to#:~:text=There%20are%20two%20Git%20commands,git%20clean%20%2Dfxd
링크에
보랜다
이런...
나 못참겟음 (현재 시간: 새벽 3시 25분: 새벽 불태웟음에 뿌듯한데 내일 아침 망햇다;)
자러감
깃허브 빠꾸는 내일 하겠습니다.
-> git reset --hard
하니까 먹힘
커밋 지워질까봐 덜덜 떨었는데 다행이다.
원래 RUD까지 구현할려고 했는데... env설정에서 한참 헤메었다. 음... env에 대해서 내일
process environmentation
관련해서 구글링을 더 해봐야겠다. (지금 새벽 3시 ㅠㅠ 그만하구 집갈래 ~ 내일 글 마저 수정함 ㅠㅠ )
내 느낌엔 CRUD 코드는 Create 정도도 금방 해냈으니 다른 것도 쉽게 금방 해내지않을까 싶다. 내일 한번 CRUD 한번에 다 끝내봐야징.