본문 바로가기

전체 글

(88)
[웹호스팅] Seedgenerator thread leak 문제 23-Jun-2022 10:51:12.052 경고 [xxxxx.cafe24.com-startStop-5] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [manager] appears to have started a thread named [SeedGenerator Thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:502) sun...
[웹호스팅] 배포시 에러 - 스펙부터 확인하자 본프로젝트는 당연히 한번에 배포가 성공하지 못했고 어느 부분의 문제인지 찾아내기 위해서 get요청시 index.html를 리턴하는 컨트롤러 또는 문자열을 반환하는 rest컨트롤러가 있는 아주 간단한 스프링부트 만들어서 빌드 후 cafe24의 톰캣에 배포하였다. 결과는? 실패! 아니 이정도의 간단한 프로젝트도 배포에 실패를 한다고? 대체 뭐가 문제야 겨우 이걸로 하루를 꼬박 날렸는데 톰캣의 log를 보니 대강 어떤 문제인지 알게 되었다. 22-Jun-2022 10:11:15.559 경고 [xxxxx.cafe24.com-startStop-1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default..
호스팅 작업이 쉽지 않다 지금까지 했던 프로젝트를 호스팅 대여센터를 빌려서 호스팅하고자 하는데 단순히 업로드만 하면 될줄 알았는데 벌써 4일이나 지났다 ㅜㅜ 빌드와 배포 정말 쉬운 게 아님을 깨닫는 중
JPA 영속성 컨텍스트를 간과하고 있었다 jpa는다 좋은데 업데이트 쿼리를 쓰려면 항상 문제가 있었다. 동적인 쿼리를 사용하고자 querydsl을 썼는데 이 querydsl은 영속성 컨텍스트를 무시하고 바로 db에 쿼리를 날려버린다. 즉, querydsl로 업데이트 쿼리를 날려서 실제 db의 entity가 변경되더라도 영속성 컨텍스트의 1차 캐시에 있는 entity는 변하지 않기 때문에 조회를 해보면 업데이트 쿼리를 날리기 전의 entity를 리턴한다. 프로젝트에서 업데이트를 사용한 대부분의 기능들이 이를 간과하고 있었는데 이는 프론트로 보내는 리턴값, 그리고 프론트에서 코드를 잘못 짰기 때문에 지금까지 눈치채지 못했다.... 아, 프론트도 나니까 다 내 잘못이구나 detach를 쓰면 1차 캐시에서 entity가 준영속화가 되는데 1. 업데이트..
[OAuth2] 소셜 로그인 구현 방식에 대한 시행 착오 간만에 소셜로그인을 구현하게 되었는데 이번엔 스프링 부트 Oauth2 라이브러리를 쓰지않고 구현해보려고 했다. 나처럼 웹개발에 익숙하지 않은 사람들에겐 라이브러리가 마냥 좋은 것 같진 않다. 내부적으로 어떻게 굴러가는지 알기 어려울 때가 많고 자칫하면 가장 중요한 개념을 놓치기 쉬운 것 같다. 그냥 소셜 로그인하는데 쓰이는 거야~ 라고만 알고 라이브러리로 쉽게 구현한들 프로토콜에 대해 이해하지 못하면 제대로 된 개발자라고 될 수 있을까. Oauth2는 고객(Resource Owner)이 내 어플리케이션(Client)에 직접 그들의 소셜 아이디와 비밀번호를 주지 않아도 내 어플리케이션이 그들을 대신하여 소셜 서비스서버(Resource Sever)가 제공하는 고객의 자원(개인정보)에 대해 접근 권한을 위임 ..
[해결] CORS 에러 해결 (2) + 추가 https://egu99.tistory.com/89 [해결] Cors 에러가 왜 났나 했는데 요즘 바빠서 tistory에 개발 일기 못 적었는데 어이없는 실수라 기록해둠. cors는 예에에에전에 서버쪽에서 config로 처리 해두어서 그동안 문제없었는데 프론트에서 jwt 토큰을 가지고 서버에 요청 egu99.tistory.com 에서 그냥 해결이 났나 했었는데 사실 근본적인 해결이 난 게 아니었다. Access to XMLHttpRequest at '~~~~~~~~~' from origin '~~~~~~~~' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource...
[해결] Cors 에러가 왜 났나 했는데 요즘 바빠서 tistory에 개발 일기 못 적었는데 어이없는 실수라 기록해둠. cors는 예에에에전에 서버쪽에서 config로 처리 해두어서 그동안 문제없었는데 프론트에서 jwt 토큰을 가지고 서버에 요청을 해야하는 기능 하나를 만드는 중에 갑자기 cors에러가 나버림. No 'Access-Control-Allow-Origin' header is present on the requested resource. 이전에 잘 주고 받았는데 왜 cors 에러가 나는지 몰라서 설정시 놓친 게 있었나해서 하루종일 구글링해서 적용해보는데도 해결이 안 됨. 방법을 거의 이틀동안 찾았는데 답은 아주 어이없었음..... jwt 필터에서 @RequiredArgsConstructor 어노테이션으로 생성자 주입 해둔 서비스 객체..
[Git 입문] 3. GitHub 연동해보기 3. Git의 주요 명령어 4. GitHub란? GitHub is how people build software GitHub는 사람들이 소프트웨어를 개발하는 방법입니다 GitHub는 대표적인 Git의 저장소. 무료이다. (비공개 저장소는 유료였으나 지금은 제한적 무료이다.) Git이 로컬에서 저장한다면 GitHub는 원격(remote) 저장소에 저장한다. 다른 사람과의 협업에서 remote 저장소 관리는 필수이다. 0. GitHub 가입하기 GitHub를 사용하려면 당연히 GitHub에 가입을 먼저 해야한다. GitHub: Where the world builds software GitHub is where over 65 million developers shape the future of softwar..