본문 바로가기
타입스크립트

Typescript 공부하기 12일차 (2022.10.28)

by 개발자A입니다 2022. 10. 29.

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를 박았다.
ㄴ해결ㅋㅋㅋ
벌써부터 프로젝트 제작기간이 늘어나고있는 느낌이 강하게 든다ㅋㅋㅋㅋㅋㅋ