본문 바로가기

분류 전체보기

(291)
[MySQL] Incorrect table definition; there can be only one auto column and it must be defined as a key 테이블에 컬럼을 삽입하려고 보니, Incorrect table definition; there can be only one auto column and it must be defined as a key 와 같은 에러가 발생하였다. 왜 이런 에러가 발생하였을까? 원인은 아래와 같다. - PK가 2개 잡혀 있었음 좀 더 찾아보니 auto_column으로 설정된 컬럼이 KEY가 아니라서 위와 같은 오류가 발생할 수도 있다고 한다. MySQL에서는 PK에 auto_column을 설정하는 것이 일반적이니,, (추가적으로, MySQL에서 SQL문으로 auto_increment를 작성하고 싶다면 ALTER TABLE 구문을 사용하거나 CREATE TABLE 할 때 지정해줄수 있다)   에러 해결방법ALTER tabl..
I edited this file, but git isn't track the file I edited a file in IntelliJ, but IntelliJ's Git isn't tracking my edited file. To solve this, I cliked on the right side of the file and click 'Git' > + Add  Now, my edited file is staged in IntelliJ's Git!
24/10/29 화요일 업무 TIL MSA 모듈 구조를 정리하기 위해 아침부터 팀원들 간의 회의가 있었다. 또한, msa 구조로 나눠지면 기존의 엔티티 연관관계들이 끊기게 되어 HTTP 통신을 따로 해서 그 데이터를 가져와야 하는데 로컬에서 돌리려면 nginx를 사용해야 한다는 것이다.  1) Layered Architecture VS DDD한 컨트롤러가 service 파일을 주입받을 때 controller에 해당하는 application단의 service가 아니라 domain단의 data service를 주입받고 있었다. 이런 상황에서 module 정의 파일에서 provider를 import 해올 때 과연 data service 파일을 import 해와도 되는 것인가?에 대한 의문이 생겼다. 왜냐하면 기존에 module 파일에 주입되는 ..
24/10/28 월 업무 TIL 오랜만에 업무 TIL을 작성한다.본격적으로 팀장님께서 미리 푸쉬해주신 모듈(쉽게말해 폴더, msa 구조에서 모듈끼리는 침범하지 않는 것이 원칙!) 구조에 따라 채팅 모듈을 서비스별로 나누어보았다.  결론적으로 이번에 바뀌는 HTTP 통신의 경우 1) ex. A 엔티티가 B 엔티티를 참조하는 경우 FK 사용하지 않기 위해 HTTP로 서로 통신하는 것. 기존 이 두 엔티티의 FK 연관관계가 끊기는 것이 MSA이다.  2) apps 하위에 들어오는 것들은 api(여러가지), batch(1개의 파일로 관리), handler, entity,service,controller,repository 기존에 libs 하위에 data 관련의 디렉토리를 넣었는데 이제 이것은 apps 하위로 다 이동하고 libs에는 각 모듈 ..
zsh: invalid mode specification B 브랜치를 추적하려는 A 브랜치를 만들기 위해 IntelliJ 터미널에 아래와 같이 작성하였다.  (AS-IS) git checkout -b feature/a-chatting-http-api(for msa) --track origin/feature/b-app  그런데 zsh: invalid mode specification 라는 에러가 발생한 것이다. 왜일까? 나는 zshrc 파일에 문제가 생긴건가?라고 의심을 하였지만, 그것이 아니었다.  위의 (for msa)라고 되어있는 부분에서 문제가 되는 것이었다. 브랜치명을 만들때 ()와 같은 괄호 사용이 되지 않는다. (TO-BE) git checkout -b feature/a-chatting-http-api --track origin/feature/b-a..
Mac 터미널에서 Redis CLI 접속방법 Mac 터미널에서 Redis CLI를 접속하는 방법은 다음과 같다.  1) redis 설치 $ brew install redis 2) 설치된 redis server 버전 확인 $ redis-server --versionRedis server v=7.2.5 ~ 으로 시작되는 명령어가 출력될 것이다.  3) redis 서비스 시작$ brew services start redis Redis의 기본 포트 6379번으로 시작했다며 서비스 시작이 잘 되었다.  4) command+N으로 새 터미널 1개 더 열고 redis-cli 실행$ redis-cli 5) 위와 같이 6379 포트 번호로 redis-cli 접속이 잘 되었다는 것을 보여준다.
error: 체크아웃 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다: ~를 전환하기 전에 이 파일을 옮기거나 제거하십시오. 해당 브랜치 위치에서 checkout을 하려고 했는데 아래와 같은 에러 메시지가 출력되었다. error: 체크아웃 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다: rust/Cargo.lock브랜치를 전환하기 전에 이 파일을 옮기거나 제거하십시오. 내가 현재 작업하고 있는 브랜치에서는 rust 브랜치는 상관이 없어서 Cargo.lock 파일을 삭제했다. 그러고 checkout이 잘 되었다.
배포 전 안쓰는 migration 파일 삭제에 대하여 라이브 배포가 나가기 전에 migration 파일 점검을 해야 했다. 근데 내 로컬에서만 삭제하고, 삭제한 파일을 push 하지 않았던 문제가 있었다. 이 코드가 다른 곳에서 쓰이지는 않지만, 배포 나가기 전이라 안전한 방법으로 migration 파일 삭제하기 위한 방법을 알게 되었다.  1) Drop에 관한 migration 파일 작성 만약 내가 project_post 라는 테이블을 만들었다고 치자. 이런 상황에서 기존에 CreateProjectPost migration은 이미 다른 환경에서 돌아갔었을 것이므로, 이 project_post 라는 테이블을 삭제하는 migration 파일을 만들어야 한다.  기존 CreateProjectPost.ts migration 파일import { MigrationI..
현재 브랜치가 ~ 기반이지만, 업스트림이 없어졌습니다. 현재 사용하고 있는 브랜치의 원격을 pull 해오려고 했는데, 갑자기 현재 브랜치가 ~ 기반이지만, 업스트림이 없어졌습니다. 라는 에러가 발생하였다. 기존에 main 브랜치로 추적해서 만들었는데.. 왜그러지 싶었다. 알고보니 해당 브랜치와 연결된 remote branch가 지정되있지 않아서 발생하는 문제라고 한다. 그래서 일단 다음과 같이 해결하였다. git branch --se-upstream-to origin/main ㄴmain 브랜치를 upstream 하려고 했다. upstream은 다른 원격 저장소의 변경사항을 가져오는 기능이다.
canvas - node version 안맞음 해결 코드를 실행하려던 중에 canvas 모듈이 node version과 맞지 않다는 에러를 보였다. was compiled against a different Node.js version using 이라는 에러 문구가 출력되었다. 해결 방법은 다음과 같다. 나는 pnpm을 사용하고 있었기 때문에 아래와 같이 실행하였다. 1) pnpm uninstall canvas 2) pnpm install canvas 3) pnpm rebuild canvas 의 방법으로 위의 에러를 해결하였고, 잘 실행이 되었다.