타입스크립트

Typescript 공부하기 12일차 (2022.10.28)

개발자A입니다 2022. 10. 29. 01:04

api만들려면 Db가 필요파지!
인프런 채용공고 보니 postgreSQL을 쓴다고 하고
mongoDB로 시작하여 MySQL을 거쳐 postgreSQL을 써보고 싶어졌다.
그래, 이번 프로젝트는 너로 정했다!!!! postgreSQL!!!

- 설치
brew install postgresql
- 확인
postgres -V
ㄴ postgres (PostgreSQL) 14.5 (Homebrew)
- 실행
brew services start postgresql
ㄴ 이미 실행 중이라는 에러가 나와서 괜히 강제로 재시작 시킴
sudo brew services restart postgresql
ㄴ 역시 sudo한테 시키면 일을 참 잘 시켜ㅎㅎ

- 접속
psql postgres
"psql: error: connection to server on socket ""/tmp/.s.PGSQL.5432"" failed: No such file or directory
Is the server running locally and accepting connections on that socket
"
ㄴ 오류발생
ㄴ 그래 이렇게 쉽게 가면 시시하지..
ㄴ 구글링 시작
"if you are using macOS and not M1
rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql
detail
1) try brew info postgres get execute command
2) try /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres
3) error: FATAL:  lock file ""postmaster.pid"" already exists
4) goto /usr/local/var/postgres directory, delete postmaster.pid file
5) restart, works"
https://stackoverflow.com/questions/69754628/psql-error-connection-to-server-on-socket-tmp-s-pgsql-5432-failed-no-such
ㄴ 그럼 그렇지 또 M1 문제였어ㅋㅋ
ㄴ 이젠 익숙..
ㄴ 잉? 2번에서 되는데?
ㄴ 그런데 왜 접속은 안될까 아리송

 

몇시간 동안 구글링한 결과  M1 mac에서는 되는 사람이 있고 안되는 사람이 있는 거 같은데 정확한 이유를 알기 어려움ㅠㅠ

ddclient 문제 때 보니 T2칩이라는 놈 때문에 이런저런게 바뀌어서 brew로 설치하는 경우 m1 mac에서는 원인을 찾기 어려운 경우가 발생하는 것 같다ㅠㅠ

 

환경 설정보다 코딩이 더 중요하니 이번에는 MySQL로 간다!

이상하게 DB는 쿼리문을 직접 써야 안심이 되서:)

 

MySQL은 너무 쉽게 설치 끝!

 

------------------------------------

그리고 타입스트립트는...

 

TS 너무 어렵다ㅠㅠ
swagger 적용시키려다가 TS로 하는 예제 보고 이번에서 마이그레이션 생각하면 또 못할 것 같아서 처음부터 TS로 하는 중
conf 파일 만드는 것부터 난관
코치님이 주신거 이해하면서 쓰는 것을 목표로 하기

1) 설치
npm i -D typescript
ㄴ 개발할 때만 필요하니까 dev dependency용 -D 추가
ㄴ 설치확인 npx tsc -v

가만 생각해보니 앞으로 계속 쓸거라 전역으로 다시 설치함
tsc -w
ㄴ 이걸 켜놓고 하면 저장 할 때마다 js파일이 하나씩 생김
ㄴ 처음에 코지님이 주신 conf를 쓰니 강의랑 너무 달라서 기본부터 시작함

2) express
express import가 안되서 알아보니 아래 두 이슈가 있음
    1) TS에서 쓸 수 있는 express package가 필요함
npm i --save-dev @types/express
ㄴ 이렇게 번거로워서 nest.js를 쓰는건가 싶다
https://wikidocs.net/148195
    2)  conf 설정이 필요함
"esModuleInterop": true
ㄴ 기본값은 import에서 이슈가 있다는데.. 왜 그게 기본값이지?!

"app.get(""/"", (req: any, res: any) => {
  res.send(""안녕하세요, 개발자A의 첫 개인 프로젝트입니다."");
});"
ㄴ res.send로 string을 보내길래 res의 type을 string으로 했더니 틀렸다고 혼났다ㅠㅠ
ㄴ 영어로 혼내길래 냅다 any를 박았다.
ㄴ해결ㅋㅋㅋ
벌써부터 프로젝트 제작기간이 늘어나고있는 느낌이 강하게 든다ㅋㅋㅋㅋㅋㅋ