본문 바로가기

분류 전체보기

(295)
brew로 설치한 kubectl 버전 확인을 하고 싶은데 brew로 이것저것 다시 깔다가 brew install kubectl 로 kubernates client를 설치하였다. 그런데 이게 잘 설치가 되었는지?싶어 찾아본 방법은 2가지이다.  1) brew list brew로 설치한 모든 라이브러리 리스트 확인  2) kubectl version --client 이걸 통해 Client Version: v1.32.3 / Kustomize Version: v5.5.0 라는 식으로 터미널에 출력된다.  그러니 설치가 잘 된것 확인!
다이나믹링크와 딥링크가 헷갈린다(feat. 개발자와 사업개발자에서 배울 관점) '다이나믹링크'와 '딥링크'는 웹개발&앱개발에서 자주 쓰이는 용어이다.  사건의 발달은 그렇다. 팀에서 '웹에서 다이나믹링크와 딥링크를 쓰는 부분이 혼재되어 있어 발생하는 문제들이 존재할 것으로 판단'한다는 것이었다. 아직까지 나는 다이나믹링크와 딥링크의 차이점을 모르는 상태에서 왜 이 둘을 혼재해서 사용하면 문제가 되고, 어떤 문제가 존재하는거지? 싶어 찾아보았다.  딥링크 Deep Link 사용자가 특정 앱 화면으로 '직접 이동'할 수 있도록 만드는 링크 웹에서는 보통 https://example.com/editor 등의 URL로 처리  Example DomainExample Domain This domain is for use in illustrative examples in documents. Y..
.env.local 파일 수정 후 vault? .env.local 파일에 slack url을 추가했는데 이거 그냥 commit & push하고 배포하면 되는건가?라고 생각했다. 하지만 그게 아니었다.  1) .env.local 파일 수정2) vault에 slack_url 추가 (dev,stage / prod) 3) 코드 commit & push ㄴ3)번을 먼저 하게 된다면, vault에서 값을 못읽어와서 빈 문자열로 뜰 것이다.  .env.local에 값을 처음 넣어봐서 이 부분은 오늘 처음 알게되었다.
find()에는 Promise가 내장되어 있다 내가 처음에 짰던 코드는 다음과 같다.  async findCollaborationList() { return await this.collaborationRepository.find(); }async~await는 항상 짝궁이라고 생각해서 await를 붙여주며 return문을 작성했다.  그러나, find()에는 놀라운 사실이 숨겨져있었다. Entity의 배열 형태를 반환할때 Promise를 그대로 반환해서 await를 쓰지 않아도 된다는 것이다. find 메소드 자체가 Promise를 반환하기 때문에 await를 쓰지 않아도 된다.  Promise를 반환하는 함수는 자체적으로 비동기 작업을 수행 + Promise 객체 반환 + 그 자체로 비동기 처리가 완료될 때까지 기다려야 할 필요X 의 역할을..
[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 접속이 잘 되었다는 것을 보여준다.