전체 글 476

[AWS] AWS ec2 putty 연결

이 좋은 방법을 놔두고 여태까지 굳이 config 파일을 만들어줘서 썼다고? ㄷㄷ 앞으로는 푸티써서 하자... 파일도 그냥 드래그앤 드롭으로 올릴 수 있다. 빌드파일 그냥 올려버릴때 너무 좋다... 흑흑 https://webnautes.tistory.com/1480 AWS 프리 티어 가입부터 EC2 생성 및 SSH 접속까지 AWS(Amazon Web Services)를 1년 동안 무료로 사용할 수 있는 프리 티어 가입부터 EC2 인스턴스 생성 및 SSH 접속까지 다룹니다. 2021. 05. 03 최초 작성 AWS 프리 티어를 사용하려면 계정을 우선 만들어야 합 webnautes.tistory.com

Cloud/AWS 2022.03.18

2022년 블로그 운영 현황

블로그를 운영한지 꽤 시간이 흘렀다. 오늘 확인해보니 지금까지 총 366 개의 게시물을 작성했다. 그 중 몇개는 비공개로 돌려놓긴 했는데 그래도 그런 글들을 제외하고도 많은 글을 썼다. 처음엔 100개의 포스팅을 넘겼을때 신기했는데 시간이 지나고 보니 이렇게 조금씩 쌓이는것 같다. 도움이 많이 되었다. 가끔 다시 보는 글들이 몇개 있는데 (주로 비공개이긴 하지만) 글쓰기 능력에 도움이 되는 것 같다. 앞으로도 계속 필요할때 마다 글을 써보자.

생각들 2022.03.14

[Linux] Oracle VirtualBox 사용중 Cannot enable nested VT-x/AMD-V 에러 발생

오라클 VB 박스를 사용 중에 새롭게 우분투 환경을 만들어주려고 하고 있었다. 그런데 시스템 설정에서 nested VT-x/AMD-v 라는 옵션을 켜야 하는데 아예 체크하는 옵션 자체가 비활성화가 되있었다. 클릭도 안된다. (위 사진은 ) 지금은 내가 해결한 상태라 네스티드 VT-x/AMD-V 사용하기(V) 가 체크가 된 상황이지만 문제가 발생한 시점에는 아예 비활성화가 되있어서 클릭이 되지 않았다. 참고로 원래 이 메뉴를 체크할 수 있으려면 바로 위의 항목인 PAE/NX 사용하기를 체크하고 나서 네스티드 메뉴도 같이 체크할 수 있어야만 한다. 그래서 여기서 문제점이 발생했고 강제로 터미널에서 이 옵션을 킬 수 있는 방법을 알아냈다. 우선 VirtualBox 가 설치된 폴더로 터미널 상에서 이동해보자. ..

C & C++/Linux 2022.03.14

[Python3] 파이썬 @cache @lru_cache 데코레이터

최근 알고리즘 문제를 풀면서 이곳 저곳 블로그들을 돌아다니는 와중에 굉장히 생소한 어노테이션을 사용하는 걸 볼 수 있었다. 최적화에 관련해서 설명해주는 블로그였는데 메모이제이션을 쓰지 않고 @cache 어노테이션을 써서 해보겠다는 취지의 글이었다. 내용은 이러하다. 파이썬에는 @cache 데코레이터가 존재한다. functools 모듈에서 가져올 수 있으며 함수를 대상으로 사용한다. 즉 @cache 데코레이터를 어떤 함수의 선언부 위에 선언하면, 그 함수에 넘어온 인자를 키 key로 그리고 함수의 호출 결과를 값 value로 삼아서 메모이제이션이 자동으로 적용된다. 대략 아래처럼 사용할 수 있다. from functolls import cache @cache def dummyfunc(x): return x..

[Git] git force 실수로 잃어버린 커밋 로그 복구하기

오늘 프론트 팀에서 api 하나를 추가하달라고 하셔서 잠깐 이것저것 만지고 있었다. 오랜만에 들어와서 만지는거라 잠깐 어색한 순간에 에러가 나는 것을 그냥 --force로 눌러버렸다. (솔직히 말하면 살짝 귀찮았다. 근데 대가가 너무 참혹했다.) git push -u --force origin main 문제없겠지하고 깃허브에서 리포를 살피는데 이런... 커밋 히스토리가 모두 날라갔다. 엥 왜 1커밋이 있지? 하고 살폈는데 이전 기록이 모두 사라졌다. 사실 예전에도 이런 경우가 한번 있었다. 170 커밋정도가 있었는데 정말 말 그대로 시원하게 싹 날렸었다. 아마 세달전이었던 것 같다. (근데 그때는 사실 혼자 작업하는 기간이어서 크게 문제가 되진 않는다고 생각하고 계속 진행했었다. ) 그런데 이번에는 팀원..

인프라/Git 2022.03.09

2022년 3월 근황 - 잘 지내보려 노력 중입니다.

최근 들어 많이 방황한다. 정신적으로나 육체적으로 힘든 것이 아니라 그저 갈피를 잡기가 힘들다. 고민이 많은 시기인 것 같다. 항상 선택과 집중이 중요하다고 이야기하지만 나는 선택에 있어서 남들보다 부족한 면이 많다는 생각이 든다. 한번 선택하여 마음을 잡고난 뒤 집중하는것은 다른 사람들보다 잘할 자신이 있지만 내겐 항상 선택이 어렵다. 나만 그런 것이 아니라 모두가 그럴테지만 유독 이번에는 더 혼란스러운 시기라는 생각이 든다. 왜일까 생각해보았는데 고려하지 않아도 될 변수에 대해 생각하는것이 혼란을 가중시킨다. 결정을 번복하고 무엇이 맞는 선택인지 지나치게 많은 고민을 한다. 헛디디면 안된다는 생각이 뿌리박혀있어 그런 듯하다. 어쩌면 여유라는게 없었는지도 모른다. 버려야하는 생각인지 아니면 항상 잘하려..

생각들 2022.03.06

[SpringBoot] SSH 접속 오류 : WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! + IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

오늘 잠시 운영중인 EC2에 문제가 생겨서 프론트 개발팀으로부터 확인해달라는 요청을 받았다. 나와 같이 백엔드를 맡고 계신분께서 ec2를 새로 파셨는데도 안된다는 연락을 받아서 나도 확인해보기 위해 새롭게 만들어진 ec2에 접근하려고 ssh설정을 만져주고 있었다. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eave..

[SpringBoot] no main manifest attribute in 에러

별다른 에러는 아니다. ./gradlew build를 통해 빌드를 해주면 jar파일이 생길텐데 이때 실행할적에 java -jar 파일명.jar 를 해주게 된다. 그런데 이때 build를 통해서는 두개의 jar 파일이 생성된다는 것을 알 것이다. 이때 바로 파일명-plain.jar 와 함께 파일명.jar 두개의 파일이 생성될 것이다. 여기서 plain 이 들어간 jar 파일은 의존성을 모두 빼고 딱 프로젝트에 있는 것들로만 jar파일을 만들었다고 보면 된다. 그래서 manifest.mf에 메인 메소드의 위치가 나오지 않는 것이다. 그러니 그냥 plain이 들어간 jar 말고 다른걸 실행해주자. 근데 매번 plain이 생성되는게 귀찮다면? build.gradle에 아래 구문을 추가해주면 된다. jar { e..

[Computer Graphics] 컴퓨터 그래픽 분야 질문 내용 정리

최근에 컴퓨터 그래픽에 관심이 생겨서 관련된 영상들을 찾아보고 있었다. GPU의 발전으로 실사와 거의 흡사하게 구현할 수 있는 수준까지 올라간 상황이라 신기한 것들이 잔뜩 있어서 시간가는 줄 모르고 보고 있었다. 그러던 중에 현업에 계신 분들이 잠시 유튜브 라이브 방송을 켜셨는데 그때 질문을 받는다고 하셔서 때를 놓치지 않고 물어봤고 그에 대한 답변을 정리해놓았다. 참고로 유튜브에 unreal 관련 영상을 검색하면 지금 어느 수준까지 와있는지 짐작할 수 있다. 꼭 그게 아니더라도 눈이 즐겁다. 질문1: CG업계에서 그래픽 엔지니어로 활동하시면서 마블 영화를 작업하셨던 분의 인터뷰 영상을 보고 이후로 이 분야에 관심갖게 되었습니다. 요즘 발표되는 기술 동향을 살펴보면 코드 수준의 쉐이더를 작성할 필요도 없..

Computer Graphics 2022.02.23

[Computer Graphics] 그래픽스 개발자 로드맵

C++ 컴퓨터 아키텍쳐 GPU 아키텍쳐 병렬 컴퓨팅 OpenGL Vulkan 다렉12 -> 다렉 12하기 전에 다렉11부터 하라는 소리가 있는데 애초에 물방울 책을 구하고 나서 시작일텐데 구하기도 어렵고(절판임) 다렉11부터 그 많은 양을 12까지 다시 볼 사람이 있을까... https://www.wenyanet.com/opensource/ko/6114ded559c375294e068d75.html 그래픽 개발자가 되기 위한 로드맵 - wenyanet 그래픽 개발자 로드맵 이 리포지토리에는 그래픽 개발자가 되는 과정에서 도움이 될 수 있는 다양한 리소스가 포함되어 있습니다. 목록은 @prographon 커뮤니티에서 지원합니다 . 우리의 현재 계획 www.wenyanet.com

Computer Graphics 2022.02.22

브런치 작가 등록에 성공했다. 감사합니다. 이제 열심히 글쓰자!

드디어 브런치 작가 등록에 성공했다.  예전에 영화 리뷰 관련 포스팅으로 어설프게 제출했다가 심사에서 처참히 실패하고 멘탈이 나가서 탈퇴했던 기억이 있다.  그로부터 시간이 많이 흘렀고 이번에는 내가 좋아하는 분야에 대해 글을 썼다. 최근 작성했던 글 중에서 나름 괜찮았던 글들을 뽑아서 시간을 갖고 천천히 다듬어서 제출했다. 많이 고쳐서 제출했다. 여러번 고치고 또 고쳤다.  운이 좋았던 것 같다.  IT 트렌드와 기술에 대한 추상적인 이야기를 주로 이야기하고 있고 개인적으로 생각하는 미래의 전망에 대한 이야기를 하고 있다.  지금 운영하는 블로그에는 가공되지 않은 날것의 글을 올리곤 한다.  기술적인 내용이 주를 이루고 있는데, 오타는 물론이고 짜임새도 제대로 갖춰져 있지 않고 띄어쓰기조차 제대로 검수..

생각들 2022.02.21

[Dev] 개발자 커리어 팁

요즘 개발자 커리어에 대한 이야기가 많다.  관련해서 유튜브에 재밌는 영상이 하나 올라와서 적어본다. 모든 내용을 공감하진 않는데 그냥 재밌는 내용이다. 1. 트위터 만들기 -> 프로필 꾸민다. 어떤 기술 공부중인지. 뭐하는 사람인지!  -> 좋아하는 기술자 팔로우하고 코드 팁같은거 공유하기! 질문을 하던! 재밌는 밈을 올리던!!  2. 링크드인 사용 !  3. 깃허브잔디심으세요... 오픈소스 컨트리뷰션 해보기..  4. 포토폴리오!하나쯤은 멋있는 앱을 만들어봐라!  -> 괘 어려운걸로 3주 잡고 제대로 해봐라.  5. 블로그 운영해라! 근데 내 고유의 커스텀 으로 하는게좋다  6. 사람 직접 만나기!  7. 멘토를 갖는 것은 정말 중요하다. 나보다 먼저 업계에 진입한 사람!  8. 될때까지 계속 구직해..

개발 정보 2022.02.12

AlphaCode 의 첫인상 - 특이점으로의 첫걸음

얼마전에 트위터 피드를 보던 와중에 굉장히 흥미로운 영상을 보게 되었다. 불과 이틀전에 올라온 트윗인데도 불구하고 리트윗과 좋아요수가 굉장히 많았다. 원본 트윗이 구글 딥마인드에서 작성한 트윗이었는데 AlphaCode라는 이름을 듣고 이번엔 알파고가 아니라 새로운 무언가 나왔구나라는 것을 직감했다. 영상을 보고 나니 정말 대단하다는 생각이 들었다. 아마 유튜브나 인터넷에 AlphaCode라고 검색하면 작동하는 영상을 볼 수도 있을텐데 보고나면 누구나 묘한 생각이 들 것 같았다. 불과 얼마전에 OpenAI 에서 만든 Gpt-3모델 관련 컬럼을 읽으면서 지금 이정도까지 발전했구나를 느끼면서 너무나 신기했었는데 단순한 텍스트나 작문을 떠나서 문제를 풀이하고 입력을 받아 원하는 출력까지 낼 수 있는 구현을 할 ..

인공지능 2022.02.08

다섯까지 세기

사람들은 성장의 가치를 신봉하는 것만큼 극복이라는 가치를 신봉하지는 않는 것 같다. 극복하지못함의 무서움을 알지 못해서일 수도 있다. 성장은 하지 않을 수도 있고 할 수도 있다. 성장하지 못하면 죽는다고 사람들은 이야기한다. 맞는 말이다. 정체는 후퇴이고 후퇴는 죽음이니까. 하지만 극복하지 못하면 성장하지 못했을 때보다 더 빨리 죽는다는 사실을 가끔 사람들은 잊고 산다. 성장하지 않는 것은 서서히 죽어가지만 극복은 개인별로 할당한 시간 내에 극복하지 못하면 그 즉시 사망한다. 그래서 죽은 사람으로 삶을 이어나가는 것이다. 극복의 가치는 성장의 가치보다 중요하다고 생각한다. 다만 그 가치가 빛을 발하는 시기는 인생에 있어서 극히 짧은 특정 시기에 국한되어 있을 뿐이다. 그러니 롱런의 철학인 성장이 인생 전..

생각들 2022.02.02

[Go] Go language 간단후기1 - Rust보다 재밌다!

며칠전에 프로젝트를 하다 지쳐서 하고 싶은거나 공부해볼까 하는 김에 Rust 문서를 읽으면서 맛보기를 해보고 있었다. 이후에 go언어가 눈에 들어왔다.(사실은 Rust를 좀 보다가 잠깐 글도 쓰고 이것저것 정리하고 보고싶었던 영화 정주행 달리다보니 며칠 사이에 새로운게 땡겼다.) 사실 go언어도 이전부터 관심갖고 지켜봐왔던 언어였다. 물론 유독 비판이 많은 언어였다. 열성 rust론자들이 있어도 go를 열성적으로 주장하시는 분들은 rust대비 거의 9:1의 비율인것 같았다. 그럼에도 불구하고 도구로써 go는 굉장히 유용하다는 의견들이 많았다. 그 의견들을 종합해보면 몇 가지로 추려질 수 있었는데 고루틴과 함께 go언어 자체의 심플함이었다. 물론 심플함 자체에 대해서도 제네릭의 부재를 말씀하시면서 비판을 ..

Go lang 2022.01.28

[Go] goquery import 에러

빠르게 해결하고 싶으신 분은 바로 맨 아래로 가서 도식화해놓은걸 확인하시면 된다. goquery를 쓰려고 하는데 gopath가 각 예제마다 다른 경우가 많다. 어느 블로그에서는 C:/ 바로 밑에 go폴더를 만들고 그안에 src bin pkg 이렇게 생성해서 쓰라는 사람도 있고 어떤 분은 그냥 지금 go lang 사이트에서 install받고 그냥 그대로 다른 설정없이 써도 상관없다는 분들도 계시다. 아마 후자가 좀더 최신인것 같은데 후자대로 하면 go를 처음 딱 설치했을때 go 경로가 c:/ program files쪽으로 잡히는걸로 알고 있다. 이게 가장 최신이다. 왜냐면 오늘해봤기때문에용. 크크 그래서 문제가 뭐냐면 각 블로그마다 설정이 다른데 goquery를 쓰려고 하다가 터미널에서 계속 에러가 나서 ..

Go lang 2022.01.28

[SpringBoot] 백엔드 프로젝트 중간점검

프로젝트가 거의 막바지에 달했다. 사실 아직 부족한 기능도 너무 많고 완벽하게 테스트도 이뤄지지 않은 부분이 많다고 생각했다. 뭐 그래도 마감일이 있으니 결과물은 내놔야하기에 이것저것 손보며 뚝딱뚝딱하고 있다. 같은 파트를 맡은 팀원분께서 개인 사정으로 너무 바쁘셔서 거의 참여를 하지 못하셔서 얼추 4주 정도를 혼자 작업한 것 같다. (사실 작업하면서 중간에 고비가 몇번 있어서 정말 힘들긴했다. 초반에 같은 파트 팀원 한분께서 갑작스레 못한다고 하셔서 나가시게 되었고 다른 파트에서도 또 한분이 나가시면서 전체적으로 인원이 줄어든 점도 있지만 이 부분에선 크게 힘든점을 느끼진 못했다. 그저 좋은 기회를 함께 하지 못한 것이 아쉬웠을 뿐이다. 그보다는 팀원분들과 연락이 잘 안되는면에서 답답한 부분이 있었던 ..

[SpringBoot] @RestController와 ResponseEntity

스프링부트로 진행중인 프로젝트에서 한참 리팩토링을 진행중이었는데 @RestController 를 사용하면 컨트롤러마다 @ResponseBody를 반복할 필요가 없다고 한다. 왜냐면 이미 @RestController 내에 선언되어 있기 때문이다. 그래서 @RestController로 바꾸어 주기로 했다. 그런데 보통 @RestController를 사용할 경우에 ResponseEntity를 사용하는 경우가 많다고 한다. 그래서 리턴 타입도 모두 ResponseEntity로 바꾸어 주었다. 예전에는 객체나 문자열 혹은 Long타입 변수를 그대로 프론트에게 던졌는데 지금은 ResponseEntity로 주다보니 통일된 느낌이라 좋은 것같다. 그리고 에러가 발생했을 경우 그 또한 통일되게 처리할 수 있는 방법이 장..

[WASM] 웹 어셈블리의 미래 - WebAssembly

브런치에 웹 어셈블리의 미래라는 글을 작성했는데 해당 글을 이곳에도 공유하고 싶어서 올리고자 한다. 아래 브런치 링크를 첨부한다. https://brunch.co.kr/@razelo/7 [WASM] 웹 어셈블리의 미래 WASM이란 무엇일까? | 웹 어셈블리라고 불리는 wasm은 2015년에 개발되어 비교적 최근에 나온 기술이다. 2017년에 발표되었고 지금까지 계속해서 개선되는 기술이다. C/ C++ / RUST와 같은 로우 레벨 랭 brunch.co.kr WEB 어셈블리라고 불리는 WASM은 2015년이라는 비교적 최근에 나온 기술이다. 2017년에 발표되었고 지금까지 계속해서 개선되는 기술이다. 주로 C/ C++ / RUST와 같은 LOW 레벨 랭귀지 즉 속도가 좋은 강한 타입의 랭귀지를 웹에서 쓰고..

Rust lang 2022.01.26

[Dev] 백엔드 개발자 로드맵(공통)

1. 백엔드 언어 택12. 프레임워크 택13. 데이터베이스 택1 4. jwt, 토큰, Oauth 5. 캐싱 - redis, memcached6. 메시지큐 - 카프카, rabbitMQ 7. 버전 컨트롤 - git8. 배포 - AWS, GCP , Firebase, Heroku  근데 사실 언어는 크게 상관없는것 같다. 완전 비탈길을 내려가는 언어가 아닌 이상 어떤 언어든 배워서 써먹을 수 있으면 그만이고 프레임워크도 마찬가지라고 생각한다. 그리고 위의 내용들보다 더 중요한건 영어다.영어가 가장 중요하다. 구할 수 있는 양질의 자료들의 99.9퍼센트가 영어로 되있다고 생각한다. 영어가 진짜 중요하다.  영어에 문제가 없다면... 노트북 한대만 있으면 된다.

개발 정보 2022.01.25

[SpringBoot] *.jar 백그라운드 실행하기 - $ nohup 명령어 &

springboot로 프로젝트를 진행하는 와중에 운영 서버에서 .jar 을 실행시켜놓으려고 하는데 백그라운드 실행을 시키기 위해서는 nohup 커맨드를 입력해야 한다. 평소에 실행시킬 때는 java -jar blabla-0.0.1-SNAPSHOT.jar 와 같이 실행했겠지만 백그라운드에서 실행시키기 위해서는 아래와 같이 명령어를 치면 된다. & 이 백그라운드라는 의미이다. nohup java -jar blabla-0.0.1-SNAPSHOT.jar & 즉 이 명령어를 치면 터미널 세션이 끊어져도 계속 실행된다. 이 명령어를 치면 nohup.out 파일이 생기는데 이 파일에 해당 jar파일의 출력들이 저장된다고 보면 된다. 실제로 위의 명령어들을 실행한 뒤에 ps -al을 실행해보면 아래와 같이 잘 실행하고..

[Intellij] Intellij에서 삭제했던 파일 혹은 코드 복구하는 방법

인텔리제이에 있는 흥미로운 기능을 발견했다. 이전에 삭제했던 파일이나 코드를 복구할 수 있는 기능이다. 예를 들어 아래와 같은 resources 폴더에서 log4j2.xml 을 삭제했는데 다시 필요한 경우가 있다고 가정하자. 깃에도 없고(?) 뭐 아무튼 아무튼 증발해버렸다면? 위의 resources 폴더에 마우스 우클릭을 한다. 그러면 위와 같이 Local History라는 메뉴가 뜰 것이다. 해당 Local History를 클릭하면 아래와 같은 화면이 나오면서 변경된 사항을 확인할 수도 있고 이전에 있었던 코드를 긁어올 수도 있다. 덕분에 살았다... 사실 진짜 실수로 지워서 복구할 필요가 있었다. 근데 그냥 CTRL + Z 누르면 되려나? 나중에 테스트해봅시다.

개발 정보 2022.01.25

java.lang.IllegalStateException: Ambiguous handler methods mapped for '/favicon.ico':

illegalStaeException 은 여러번 본적이 있지만 /favicon.ico는 뭘까? 배포중에 문제가 생겨 다시 로컬에서 부트를 띄우던 도중에 갑자기 위와 같은 에러가 발생했다. 사실 이전에 restapi 들의 경로를 바꿔주었던 작업에서 계속 작은 문제들이 잇따라 발생했는데 혹시 거기서 또 뭔가 발생하지 않았나 짐작하긴했었다. 결론부터 말하면 맞다. Controller의 경로가 중복되었을때 발생하는 고질적인 문제이다. 꼭 경로가 중복된 상황에서만 발생하는게 아니라 이외의 상황에서도 발생할 수 있는 에러이긴 하다. 그런데 신기한 점은 Ambiguous하다는 로그에 있다. 왜 모호하다는 표현을 썼을까? 위의 두 사진을 보면 api의 mapping에서 한군데는 filename이라고 되어있고 한군데는 ..

[SpringBoot] @PathVariable vs @RequestParam

둘 중 뭐가 더 나은지는 사실 성능상 상관없다. 상황에 따라 더 좋은 것을 쓰면 되는데 아주 미묘한 차이가 있다. (사실 이전까지는 뭐 별반 차이없을거라 생각해서 그냥 무작정 @RequestParam 만 잔뜩 써대고 있었다. ) 1. @ParhVariable은 어떠한 Resource를 식별하고 싶다고 하면 그때 사용하면 되는 것이고 2. @RequestParam은 정렬이나 필터링을 할때 사용하면 좋다. 즉 2번의 예시를 들자면 url에 파라미터로 특정 조건에 충족하는 사람만 조회해서 가져오고 싶다면 다음과 같이 쓰면 된다. localhost:8080/test/condition=good 이런 식으로 컨디션이 좋은 사람들만 골라서 가져오겠다는 식으로 말이다. 이럴때 @RequestParam을 쓰면 좋다. 이..

[기술서적] readITzine #3 - 앞으로 계속 나아가기

오랜만에 필요한 기술서적이 있어서 두권을 구입하게 되었는데 사은품 선택 란에 리드잇 zine 3호 라는게 눈에 띄었다. 예전에도 한번 사은품 목록에 올라왔던 적이 있었는데 원래 잡다한 것을 굳이 골라서 받아놓는 것을 좋아하는 성격이 아니라서 굳이 추가하진 않았다. 그런데 이번에 다른 사은품으로 올라온 노트가 마음에 들어서 추가할까 하다가 리드잇이 눈에 걸려서 궁금해서 추가해서 읽어보게 되었다. 결론부터 말하자면 정말 재밌다. 인터넷에 서치하다보면 꼭 기술에 관련된 디테일한 내용이 아니더라도 그와 연관있는 재미난 이야기를 해주시는 분들이 많이 계시다. 그런 분들의 글을 읽으면서 좋아요와 구독을 꾹꾹 누르고 다니는데 이 매거진은 그런 분들을 모두 모아서 한번에 만날 수 있는 매거진이다. 각기 다양한 분야에서..

[SpringBoot] org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL

프로젝트를 수정하는 도중 새로운 jpa 엔티티를 추가해서 진행하고 있었는데 ddl-auto: create으로 테이블을 생성해보니 org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL 이라는 에러가 발생했다. 분명 h2 디비도 잘 돌아가고 있었는데 왜 ddl 구문에서 에러가 발생했을까? 원인은 예약어에 있었다. 밑에 사진을 보면 컬럼 중에 like 라는 컬럼이 있다. 즉 like 는 이미 mysql에 존재하는 예약어이다. 즉 이 컬럼명을 likes로 바꾸던지 prefer로 바꾸던지 해서 문제를 해결하는 것이 좋다. 즉 프로그래밍 언어에서 int를 변수명으로 선언하는 것과 비슷한 경우랄까? 혹은 assert 를 변수명으로 ..

반응형