Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. 발생 시

개발/TypeScript 2022. 4. 11. 08:20

node src/~.ts를 실행했을 때 아래와 같이 Warning과 함께 SyntaxError: Cannot use import statement outside a module과 같이 에러가 발생하였다. package.json에 type이 "module"로 지정되어 있지 않아서 node로 src안의 ts 파일을 개별 실행시킬시 때 위와 같이 출력되었다. 위와 같이 package.json에 type: module을 추가하고 ts 파일을 실행 시 정상적으로 실행되었다.

Article Thumbnail
org.hibernate.tool.schema.spi.CommandAcception.... Error executing DDL 에러 발생 시

개발/Spring 2022. 4. 4. 08:20

Spring Application을 실행시켰을 때, $ org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL 와 같은 에러가 발생하였다. 해당 에러는 사용하는 DataBase의 예약어와 엔티티의 이름이 겹쳐서 발생하는 예외이다. 위처럼 @Table 어노테이션안에 테이블의 이름을 직접 지정하는 것을 통해 해당 에러를 해결하였다.

Article Thumbnail
토크 vs 코드

생각정리 2022. 3. 27. 23:56

내가 좋아하는? 했던? 문구가 있다. Talk is cheap, Show me the code. - Linus Torvalds - 프로그래밍 관련된 명언 또는 밈(meme)에 빠지지 않고 등장하는 리눅스 토르발즈의 문구이다. 개발 공부 시작 초기에는 저 명언처럼 말로 하는 것보다 코드로 보여주는 것이 좋은 것이고, 개발자라면 당연히 더 좋은 코드 퀄리티에 대해서만 고민하는 것으로 생각했었다. 그런데 저 명언이 그대로 적용이 가능한 분야는 오픈소스처럼 한정적인 분야에서만 가능하다는 것을 회사에 다니면서 알게 되었다. (심지어 오픈소스도 소통은 한다.) 물론 그렇다고 개발 실력이 없어도 된다는 건 아니다. 단지 저 명언대로 하면 1시간에 끝날 일을 10시간 혹은 그 이상의 시간을 투자해야 할 가능성이 있을 ..

Article Thumbnail
[NestJS & React] 유저 동접 방지 구현

개발/NestJS 2022. 3. 24. 08:20

유저 동시 접속 방지 기능을 개발이 완료된 서비스에 추가하는 방식으로 구현해야될 일이 생겼다. 해당 서비스의 경우, 로그인, 유저 관리를 세션/쿠키 방식이 아닌 JWT 방식으로 관리하고 있었기 때문에 동시 접속 방지를 websocket을 활용하여 구현하였다. 대략 어떻게 동시접속 방지를 구현할지에 대해 생각해보면 순서가 다음처럼 되었다. 유저가 로그인할 때, 토큰을 프론트로 전송함과 동시에 socket connection을 연다. 해당 유저가 로그아웃 할때까지 connection을 유지한다. 다른 클라이언트에서 해당 유저가 접속하면 기존의 connection을 끊고, 새로 접속된 클라이언트에서만 로그인시킨다. 위와 같은 방식으로 큰 틀을 잡고 구현하였다. 기존의 사용하던 NestJS가 v7이고 socke..