[SpringBoot] springboot에서 파이어베이스 연동하는법 https://popawaw.tistory.com/264 Spring boot 에서 Fire base storage 연동 하여 사용하기 Firebase 에 접속하여 Stroage 만들기 storage 를 생성 한뒤 private key 가 담긴 json 파일을 다운 받으러 갑니다. project settings 를 클릭 한뒤 generate new private key 를 누르셔서 잘 보관 해주세요 그.. popawaw.tistory.com Spring Framework/SpringBoot 2022.04.07
[springboot]cannot deserialize from Object value (no delegate- or property-based Creator) 에러 발생 스프링 부트로 만든 어플리케이션을 테스트하던 도중에 cannot deserialize from Object value (no delegate- or property-based Creator) 라는 에러를 만났다. api 를 호출하면서 어떤 Dto를 전달해주는데 그 사이에서 형식이 맞지 않았던 혹은 전달이 잘못되었든 어딘가에 문제가 생겼을 것이라고 추측하였다. 해결방법은 아주 간단하다. 아래는 내가 api로 전달하고자 했던 Dto 이다. (해결한 모습이다.) 위와 같이 Dto를 선언해줌으로써 해결할 수 있었다. 원래 해결되기 이전에는 @NoArgsConstructor 어노테이션이 없었다. 왜 이 어노테이션이 없으면 에러가 발생할까? jackson library가 빈 생성자가 없는 모델을 생성할 줄 모르기 .. Spring Framework/SpringBoot 2022.04.07
[JPA사용중] TransactionRequiredException: Executing an update/delete query 에러 발생/ 트랜잭션이란? 굉장히 간단한 에러이다. 근데 로직이 틀린게 아닌데 왜 에러가 날까 싶을거다. update나 delete 구문을 실행할때 @Transactional 어노테이션을 달아주지 않으면 발생하게 되는 에러이다. 이렇게 @Transactional 을 달아주면 에러가 나지 않는다. @Transactional 이 하는 기능도 굉장히 직관적인데 디비를 공부했다면 트랜잭션이 무엇인지 알것이다. 기억을 더듬어보자. @Transactional 은 이 어노테이션이 붙은 메서드의 경우 메서드가 포함하고 있는 작업 중에 하나라도 실패할 경우 전체 작업을 취소한다는 뜻이다. 전체 작업을 취소한다? 데이터베이스를 배웠다면 기억이 날텐데, 우리가 B라는 사람에게 돈을 보냈는데 갑자기 중간에 은행이 번개를 맞아서(ㅋㅋ) 실제로 내가 보낸.. Spring Framework/SpringBoot 2022.04.03
[Pythone] Python3 Memory Error 발생 - 파이썬 메모리 에러 발생 leetcode에서 문제를 풀고 있는데 이런 에러를 만났다. 메모리 에러라고 한다. 사실 이런 에러는 오늘 처음 만났다. MemoryError 라는게 있었는지도 몰랐는데 오늘 발생하고 나서야 이런게 있다는 것을 알게 되었다. 다이나믹프로그래밍을 짜면서 dp 테이블을 굉장히 크게 만들어줘서 발생한 에러인데 실제로는 처음 봤다. 물론 풀이 방법을 달리해야 하는 것은 당연하지만 이 Memory Error 라는 것이 실제로 다른 곳에서 발생했을 경우 대처하는 방법에 대해서 알아보자. 일반적인 대처방법: 1. 그냥 다시 실행해보자. 때에 따라서 매모리 에러의 경우 그냥 다시 실행하면 잘되는 경우가 있다고 한다. 2. 배치 사이즈를 줄인다. (이건 딥러닝을 사용할 경우를 말하는거다.) 순간적으로 많은 데이터를 처리.. Python3/Python3 lang 2022.04.02
[SpringBoot] 퍼블릭 IPv4 주소로 ec2에 연결시 connection timed out 발생할 경우 가끔 만들어놓은 ec2에 스프링부트를 띄워놓고 퍼블릭 ipv4 주소로 접근해서 잘 뜨는지 확인하려고 할경우 아무리 접속해도 connection timed out 이 발생하는 경우가 있다. 스프링부트 어플리케이션은 잘만 돌아가고 있는데도 왜 이렇게 접속이 안되는걸까? 성급하게 ec2를 만들고 빨리 테스트해보고 싶어서 이것저것 놓치면 발생하는 문제다. 보안 그룹에서 인바운드 규칙에 8080포트를 안열어놨을 가능성이 크다. SSH 연결하려고 22포트만 열어놓고 RDS 연결한다고 3306만 열어놓고 나머진 열어놓지 않아서 발생하는 문제이다. 꼼꼼히 살피고 HTTP, HTTPS, 혹은 8080포트를 열어놓자. https://bcp0109.tistory.com/356 AWS 1편: EC2 생성 후 Spring Bo.. Spring Framework/SpringBoot 2022.04.02
[SpringBoot] hikaripool-1-Starting... stuck 문제 - hikaripool 에서 멈출 경우 대응방법 새롭게 진행하는 프로젝트에서 ec2를 만들어서 rds랑 연결하는 작업을 하고 있는데 스프링 부트 어플리케이션을 실행하면 hikaripool starting... 에서 무한정 대기하는 현상을 발견했다. 로컬에서 rds 에 연결했을때도 잘 연결됬는데 ec2 상에서 문제가 발생하는 것을 보고 인터넷을 한참 뒤졌다. 관련된 자료로는 hikari의 경우 특정 버전, 예를 들면 window 와 특정 oracle jdk 버전(18>이후)에서 고질적인 문제를 겪는다고 한다. 관련된 github 이슈가 딱 하나 있었는데 대화가 상당히 진행되며 이야기한 것의 요약을 해보면 위 환경에서 이유없이 그냥 stuck 되는 경우가 있었다고 한다. (이것때문에 고민하신 분들이 꽤 많았다. 하지만 내 문제와는 살짝 결이 다른 이슈인것.. Spring Framework/SpringBoot 2022.04.01
[BOJ] 백준 11060 점프점프 - 파이썬 실버 2로 랭크되어있는 백준 11060 점프점프 문제이다. 원래 문제풀이는 검색하면 바로 나오기 때문에 필요성을 느끼지 못해서 블로그에 문제풀이 관련 포스팅을 따로 하지 않는데 이 문제의 경우는 좀 아쉬웠다. 메모리 초과로 풀지 못해서 답답한 감이 있어서 포스팅을 하게 되었다. (이 문제는 dp로 풀어내는 방법도 있다고 한다. 처음부터 bfs로 접근했기 때문에 더 아쉬웠다는 생각이 들지만 어차피 어떤 방법으로 접근하든 풀어내는 사람은 문제없이 잘 풀어내기에 단념하고 다른 분들 코드를 읽어보고 있다. ) from collections import deque import sys input = sys.stdin.readline n = int(input()) # 1이라면 시작과 동시에 종료 if n == 1: .. Algorithm/문제풀이 2022.03.25
[Intellij] Intellij 유용한 단축키 디렉터리, 패키지, 클래스 등 생성 목록 보기 alt + insert 라인 복제 ctrl + d 라인 삭제 ctrl + y 문법에 관계없이 라인 이동 alt + shift +(키보드 위아래) 구문 안에서만 라인 이동 (메서드 벗어날 수 없음) ctrl + shift + (키보드 위아래) element 단위로 옮기기 ctrl + alt + shift + doc 즉시 보기 ctrl + q 단어별 이동 ctrl + 단어별 선택 ctrl + shift + 라인 첫끝 이동 home, end 라인 전체 선택 shift + home, end 전체에서 검색 ctrl + shift + f 파일 검색 ctrl + shift + n 최근 열었던 파일 ctrl + e 출처는 아래와 같습니다. 감사합니다. https://gml.. 개발툴 2022.03.24
[Python3] 코딩테스트 파이썬 사용시 유일한 단점 - 파이썬의 객체 복사 방식(깊은 복사와 얕은 복사) 간만에 알고리즘 문제가 잘 풀린다 했더니 말도 안되는 에러가 발생해서 거의 1시간을 이것저것 만져보면서 고민했던것같다. 도대체 왜 안되는건지? 이 고민을 아무리 해봤는데도 이상할게 전혀 없는 코드인데 원하는 대로 동작하지 않았다. 한참을 코드를 들여다보다가 아차 싶은게 떠올랐다. 객체를 복사하는 과정이 굉장히 많았는데 이 부분에서 에러가 발생했던 것이었다. (한 변수를 사용하면서 그 값에다가 여러 변화를 주면서 사용했다. 이게 문제였다.) 이전에도 인지하고 있었던 내용이었지만 유독 오늘 만난 문제에서 실수를 했던 것이었다. (알고 있는 것과 실천하는 것은 다르다.) 파이썬이 모든 면에서 굉장히 편하고 알고리즘 문제를 풀기에 딱 좋은 언어라는 생각이 들었다. 너무 편하다. 문자열도 깔끔하게 풀어낼 수 있고.. Python3/Python3 lang 2022.03.19
[VSCode] VSCode java 환경 세팅하기 - visual studio code java setting 요즘 심심할때마다 알고리즘 문제를 하나씩 풀어보고 있는 중인데 자바로도 풀어볼까하는 생각이 들었다. 원래는 파이썬으로 잘 풀고 있었다. 저번에 c++로 풀어봤었는데 당최 c++ 기억이 가물가물해서 자잘한 문법에서 요리조리 검색하면서 풀다보니 배보다 배꼽이 커서 파이썬으로 빠르게 푸는 중이다. 그러니 vscode에 자바 세팅을 해보자. 인텔리제이를 써도 되긴 하지만 굳이 프로젝트를 거창하게 세팅할게 아니라 딱 한 파일에만 코드짜고 돌려보고 디버깅해보고 제출할거라서 vscode 로 자바 개발환경을 잡아주고 가볍게 쓰는게 낫겠다 싶었다. 방법은 간단하다. 일단 다들 jdk 는 깔려있을거라고 가정한다. vscode에 extension pack for java를 설치해준다. 설치됬으면 file -> prefere.. 개발툴 2022.03.19
[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
[Linux] Oracle VirtualBox 사용중 Cannot enable nested VT-x/AMD-V 에러 발생 오라클 VB 박스를 사용 중에 새롭게 우분투 환경을 만들어주려고 하고 있었다. 그런데 시스템 설정에서 nested VT-x/AMD-v 라는 옵션을 켜야 하는데 아예 체크하는 옵션 자체가 비활성화가 되있었다. 클릭도 안된다. (위 사진은 ) 지금은 내가 해결한 상태라 네스티드 VT-x/AMD-V 사용하기(V) 가 체크가 된 상황이지만 문제가 발생한 시점에는 아예 비활성화가 되있어서 클릭이 되지 않았다. 참고로 원래 이 메뉴를 체크할 수 있으려면 바로 위의 항목인 PAE/NX 사용하기를 체크하고 나서 네스티드 메뉴도 같이 체크할 수 있어야만 한다. 그래서 여기서 문제점이 발생했고 강제로 터미널에서 이 옵션을 킬 수 있는 방법을 알아냈다. 우선 VirtualBox 가 설치된 폴더로 터미널 상에서 이동해보자. .. Linux 2022.03.14
[Java] Java Garbage Collection 정리 Java Garbage Collection에 대한 간략한 내용을 알아보고자 한다. 아래 자료에서 많은 도움을 받았습니다. 감사합니다. 아래는 네이버 D2에 작성된 글입니다. https://d2.naver.com/helloworld/1329 https://www.youtube.com/watch?v=FMUpVA0Vvjw Java 2022.03.13
[Python3] 파이썬 @cache @lru_cache 데코레이터 최근 알고리즘 문제를 풀면서 이곳 저곳 블로그들을 돌아다니는 와중에 굉장히 생소한 어노테이션을 사용하는 걸 볼 수 있었다. 최적화에 관련해서 설명해주는 블로그였는데 메모이제이션을 쓰지 않고 @cache 어노테이션을 써서 해보겠다는 취지의 글이었다. 내용은 이러하다. 파이썬에는 @cache 데코레이터가 존재한다. functools 모듈에서 가져올 수 있으며 함수를 대상으로 사용한다. 즉 @cache 데코레이터를 어떤 함수의 선언부 위에 선언하면, 그 함수에 넘어온 인자를 키 key로 그리고 함수의 호출 결과를 값 value로 삼아서 메모이제이션이 자동으로 적용된다. 대략 아래처럼 사용할 수 있다. from functolls import cache @cache def dummyfunc(x): return x.. Python3/Python3 lang 2022.03.13
[Git] git force 실수로 잃어버린 커밋 로그 복구하기 오늘 프론트 팀에서 api 하나를 추가하달라고 하셔서 잠깐 이것저것 만지고 있었다. 오랜만에 들어와서 만지는거라 잠깐 어색한 순간에 에러가 나는 것을 그냥 --force로 눌러버렸다. (솔직히 말하면 살짝 귀찮았다. 근데 대가가 너무 참혹했다.) git push -u --force origin main 문제없겠지하고 깃허브에서 리포를 살피는데 이런... 커밋 히스토리가 모두 날라갔다. 엥 왜 1커밋이 있지? 하고 살폈는데 이전 기록이 모두 사라졌다. 사실 예전에도 이런 경우가 한번 있었다. 170 커밋정도가 있었는데 정말 말 그대로 시원하게 싹 날렸었다. 아마 세달전이었던 것 같다. (근데 그때는 사실 혼자 작업하는 기간이어서 크게 문제가 되진 않는다고 생각하고 계속 진행했었다. ) 그런데 이번에는 팀원.. 인프라/Git 2022.03.09
[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.. Spring Framework/SpringBoot 2022.03.02
[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.. Spring Framework/SpringBoot 2022.02.28
[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
[Dev] 개발자 커리어 팁 요즘 개발자 커리어에 대한 이야기가 많다. 관련해서 유튜브에 재밌는 영상이 하나 올라와서 적어본다. 모든 내용을 공감하진 않는데 그냥 재밌는 내용이다. 1. 트위터 만들기 -> 프로필 꾸민다. 어떤 기술 공부중인지. 뭐하는 사람인지! -> 좋아하는 기술자 팔로우하고 코드 팁같은거 공유하기! 질문을 하던! 재밌는 밈을 올리던!! 2. 링크드인 사용 ! 3. 깃허브잔디심으세요... 오픈소스 컨트리뷰션 해보기.. 4. 포토폴리오!하나쯤은 멋있는 앱을 만들어봐라! -> 괘 어려운걸로 3주 잡고 제대로 해봐라. 5. 블로그 운영해라! 근데 내 고유의 커스텀 으로 하는게좋다 6. 사람 직접 만나기! 7. 멘토를 갖는 것은 정말 중요하다. 나보다 먼저 업계에 진입한 사람! 8. 될때까지 계속 구직해.. 개발 정보 2022.02.12
[AI] AlphaCode 의 첫인상 - 특이점으로의 첫걸음 얼마전에 트위터 피드를 보던 와중에 굉장히 흥미로운 영상을 보게 되었다. 불과 이틀전에 올라온 트윗인데도 불구하고 리트윗과 좋아요수가 굉장히 많았다. 원본 트윗이 구글 딥마인드에서 작성한 트윗이었는데 AlphaCode라는 이름을 듣고 이번엔 알파고가 아니라 새로운 무언가 나왔구나라는 것을 직감했다. 영상을 보고 나니 정말 대단하다는 생각이 들었다. 아마 유튜브나 인터넷에 AlphaCode라고 검색하면 작동하는 영상을 볼 수도 있을텐데 보고나면 누구나 묘한 생각이 들 것 같았다. 불과 얼마전에 OpenAI 에서 만든 Gpt-3모델 관련 컬럼을 읽으면서 지금 이정도까지 발전했구나를 느끼면서 너무나 신기했었는데 단순한 텍스트나 작문을 떠나서 문제를 풀이하고 입력을 받아 원하는 출력까지 낼 수 있는 구현을 .. 인공지능/Deep learning 2022.02.08
[Go] Go language 간단후기1 - Rust보다 재밌다! 며칠전에 프로젝트를 하다 지쳐서 하고 싶은거나 공부해볼까 하는 김에 Rust 문서를 읽으면서 맛보기를 해보고 있었다. 이후에 go언어가 눈에 들어왔다.(사실은 Rust를 좀 보다가 잠깐 글도 쓰고 이것저것 정리하고 보고싶었던 영화 정주행 달리다보니 며칠 사이에 새로운게 땡겼다.) 사실 go언어도 이전부터 관심갖고 지켜봐왔던 언어였다. 물론 유독 비판이 많은 언어였다. 열성 rust론자들이 있어도 go를 열성적으로 주장하시는 분들은 rust대비 거의 9:1의 비율인것 같았다. 그럼에도 불구하고 도구로써 go는 굉장히 유용하다는 의견들이 많았다. 그 의견들을 종합해보면 몇 가지로 추려질 수 있었는데 고루틴과 함께 go언어 자체의 심플함이었다. 물론 심플함 자체에 대해서도 제네릭의 부재를 말씀하시면서 비판을 .. Go 2022.01.28
[Go] goquery import 에러 빠르게 해결하고 싶으신 분은 바로 맨 아래로 가서 도식화해놓은걸 확인하시면 된다. goquery를 쓰려고 하는데 gopath가 각 예제마다 다른 경우가 많다. 어느 블로그에서는 C:/ 바로 밑에 go폴더를 만들고 그안에 src bin pkg 이렇게 생성해서 쓰라는 사람도 있고 어떤 분은 그냥 지금 go lang 사이트에서 install받고 그냥 그대로 다른 설정없이 써도 상관없다는 분들도 계시다. 아마 후자가 좀더 최신인것 같은데 후자대로 하면 go를 처음 딱 설치했을때 go 경로가 c:/ program files쪽으로 잡히는걸로 알고 있다. 이게 가장 최신이다. 왜냐면 오늘해봤기때문에용. 크크 그래서 문제가 뭐냐면 각 블로그마다 설정이 다른데 goquery를 쓰려고 하다가 터미널에서 계속 에러가 나서 .. Go 2022.01.28