전체글 224

[JAVA] JVM의 구조 와 메모리 구조

JVM 구조 자바의 주요 장점 중 하나인 OS 플랫폼의 독립성이 있다. WORN (wtite once, run anywhere) 이를 가능하게 하는 것이 바로 JVM이다. 자바소스코드를 컴파일러가 컴파일하면 컴퓨터가 직접 해석 및 실행할 수 있는 바이트 코드가 되고 이를 JVM이 실행하여 Class Loader -> Bytecode verifier -> interpreter를 거쳐 자바 소스가 어느 환경에서든지 잘 구동 될 수 있도록 해준다. JVM 구성요소 ClassLoader 컴파일러가 만든 클래스 파일을 JVM 내의 메모리영역 (Runtime Data Area)에 올리는 역할 이 과정은 런타임시 실행되지만, 필요하다면 계속해서 동작함. Garbage Collector 메모리 관리 기능을 자동으로 수..

22.10.22 (토) 83일 차

오늘 한 것 2022.09.07 - [🌿SPRING/🍀공부 [SPRING]] - [SPRING] Frontend와 협업 ! - CORS 원리 / 설정 (22.10.22 수정) 2022.10.23 - [🚨에러노트] - [Solved][Ubuntu] ubuntu reboot 후 port connection error 소켓만 없으면 될 거야... 하던 기대는 무너지고 메모리 사용량을 62%로 유지했는데도 OOM 에러가 났다. Java Heap Memory 공간은 다르겠지 으이구! 힙덤프 파일을 저장하는 경로를 다르게 해두어서 그런지 이번 에러는 힙덤프 파일이 쌓이지 않았다. 일단 다시 뻗을때까지 기다려 본다... ㅎㅎ

[Solved][Ubuntu] ubuntu reboot 후 port connection error

문제상황 서버의 램이 부족하여 인스턴스 용량을 늘려준 뒤 인스턴스를 재부팅하였다. 서버도 동일하게 $ reboot 를 진행하고 무사히 jar 파일을 돌렸는데 .. 돌아가는 건 확인이 되었지만 막상 도메인으로 들어가면 연결이 되어있지 않았다. 해결방법 reboot를 하면서 포트포워딩 설정이 빠졌었다. sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 🧨 서버를 재부팅한 후에는 꼭 포트포워딩을 해주자..

🚨에러노트 2022.10.23

22.10.21 (금) 82일 차

오늘 한 것 서버 안정화 .. 를 위한 분석 툴 사용하기 => 에러가 안났으면 좋겠다.. 원인이 뭘까? 미뤄둔 에러들 하나씩 정리하기 최종 프로젝트 런칭 ! https://www.earthus.net/ Earth, us 제로웨이스트 커뮤니티 www.earthus.net 오늘 배운 것 Heap Dump file 추출하여 분석하기 => 추후 방안 생각하기 2022.10.22 - [🚨에러노트] - [Solved][Spring]the authorization header is malformed; the authorization component "..."is malformed 2022.10.22 - [🚨에러노트] - [Solved][Ubuntu] ERROR c.i.b.d.M.service.Service.'.....

[Sloved][SPRING] Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR & java.lang.StackOverflowError: null & Infinite recusion 무한참조에러

문제상황 서버도 잘 돌아가고 아무 무리없이 진행하던 중에 갑자기 팀원 한병이 UX를 해보던 중에 버그가 있다고 하였다. 아까까지만해도 잘되고 있던 로그인에서 갑자기 콘솔에서 🧨Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR 에러가 뜬다고 하여 나도 급하게 접속을 해보니 같은 에러가 나타났다 서버로그를 확인해보니 🧨java.lang.StackOverflowError: null 검색을 해보니 Lombok 사용으로 인한 순환참조에러라고 한다. (toString)? 그런데 에러로그를 더 내려보고나서야 제대로된 원인을 찾을 수 있었다. 🧨Infinite recusion (StackOverflowError) : .. 아주 친절하게도 무한 참조 / 무한 재귀 라고 알..

🚨에러노트 2022.10.22

[Solved][Ubuntu] ERROR c.i.b.d.M.service.Service.'...' - Permission denied & java.base/java.io.unixfilesystem.createfileexclusively(native method)

문제상황 서버로 배포한 상황에서 이미지 업로드 문제를 로컬에서 해결했는데도 여전히 업로드가 안되고 있었다. 로컬에서와 마찬가지로 다른 Data 값들은 모두 DB에 저장이 잘되는데 이미지만 null 값으로 들어가고 있었다. 서버로그 어디선가 권한이 거절당했다고 한다... 1) 로컬에서는 잘 돌아갔으니 AMI 권한은 아닐 것이다 (AWS에서 다시 확인해주었다) 2) Json Data는 잘들어가고 있으니 DB 복호화 문제도 아닐 것 이다 + 로컬에서 이미 fix했다 3) 요청으로 들어오는 이미지 값이 문제일까? 좀더 자세히 보기 위해서 로그를 보는 설정을 추가해 주었다. 👉 요청으로 들어오는 multipart 이미지 값은 잘 받았으나 예외로 빠지고 있었다. 해결방법 드디어 제대로된 에러 로그가 나왔다. (코딩..

🚨에러노트 2022.10.22

[Solved][Spring]the authorization header is malformed; the authorization component "..."is malformed

문제상황 Jasypt를 이용하여 properties를 암호화하고 난 뒤에 난 에러이다. 다른 DB 접근등은 모두 되었는데 S3 업로드 부분에서만 에러가 났다. 로그를 보니 인증 키가 복호화가 안되고 암호화된 상태를 읽고 있는 걸 확인 할 수 있다. 해결방법 👉 가설 확인을 위해서 암호화된 부분을 원래 키값으로 바꾸어주었더니 정상작동 하는걸 확인하였다. 그러면 어디서 복호화가 안되고 있는 걸까? 디버깅을 찍어보니 accesskey 와 secretkey 모두 잘 복호화 한 걸 확인할 수 있었다 S3 서비스에서 복호화된 내용을 끌어와서 사용해야 하는데 그걸 전혀 못해주고 있었다. 원인은 @Bean 이었다. 2022.09.23 - [🌿SPRING/🌱연습[SPRING]] - [SPRING] [AWS] 게시글 이미..

🚨에러노트 2022.10.22

[Solved][github Action] Codedeply 배포 에러

문제상황 분명히 Action에서도 모든 작업을 완료한 것으로 나오고 ec2 codedeploy에서도 배포 완료라고 되어있으나 ubuntu 서버에 들어가서 서버 작동이 된 시간을 보니 배포가 전혀 안되고 있었다....ㅎㅎㅎㅎㅎ 어쩐지 수정을해도 그대로 더라니 ubuntu/app 에서 deploy로그를 보니 일단 작업은 모두 완료가 된 걸 확인할수 있다. 에러로그를 보니.... 에러가 나서 아예 서버가 돌고 있지 않았다 ㅎㅎㅎㅎㅎㅎㅎ => 캡쳐는 못하였으나 대충 properties가 없어서 ${jwt.secret}을 못가지고 온다는 내용이었다 🧨 왜 이제야 알았을까? 원래 로그백을 보던 log.log는 이미 서버가 돌고 있는 것들의 로그만 확인이 가능했다! codedeploy로 배포된 것들은 app내에 따로..

🚨에러노트 2022.10.20

[Linux] 💻내가 보려고 정리하는 리눅스 명령어들

서버배포를 하다보니 리눅스 명령어를 몰라서 하나하나 찾아보면서 했었다 .. 다음에 까먹더라도 쉽게 찾아볼수 있게 정리해두기! 필수 명령어 ls : 현재 위치의 파일 목록 조회 ls -la // 숨김파일 전체 표시 ls -l : 파일의 상세정보 ls -a : 숨김 파일 표시 ls -t : 파일들을 생성시간순(제일 최신 것부터)으로 표시 ls -rt : 파일들을 생성시간순(제일 오래된 것부터)으로 표시 ls -f : 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시 cd : 디렉토리 이동 cd [디렉터리 경로] : 이동하려는 디렉터리로 이동 (경로 입력 시 '[', ']'부분은 빼고 입력!) cd ~ : 홈 디렉터리로 이동 cd / : 최상위 디렉터리로 이동 cd . : 현재 디렉터리 cd .. : ..

🌏CS 2022.10.20

22.10.19 (목) 80일 차

오늘 한 것 [팀] 검색기능 배포서버 에러 ^^ 오늘은 오랜만에 오전 내내 서버가 말썽을 부리지 않았다.. 간만에 평온하게 내가 맡은 기능을 개발하려고 했는데 서버가 갑자기 멈췄다... 아니 에러가 ... java.lang.OutOfMemoryError: Java heap space ㅎㅎㅎㅎㅎ 일단은 가상메모리를 할당해주면 된다고 해서 해주고 재부팅을 하고 다시 서버를 돌리니 되었다. 근데 로그인이 안되네...? 이제서야 원인을 알겠지만 그때는 또 무언가 잘못된 줄 알았다.. (최신 jar 파일을 구동시킨게 아닌 예전거를 수동 배포해서 생긴 문제였다) 일단 다들 로그인 해결하는 동안에 검색기능을 구현했고 자동배포 하고나니 로그인이 되었다. (당연히..최신 jar니까...ㅠㅠㅠㅠ 왜 그때는 생각지도 못했을..

22.10.18 (화) 79일 차

오늘 한 것 에러의 늪 서버를 배포한다는 것은 너무 큰일 이었다. 이때까지 일주일씩하던 미니 프로젝트들은 솔직히 되어도 그만, 안되어도 그만인 그저 연습용 발표용 자료였기 때문에 한번만 이라도 잘되면 장땡이었다. 그러나 지금은 서비스 런칭을 위해서 하는 것이어서 좀더 신경 쓸게 많았다. 일단은 기존에 그냥 http로 배포하던걸 https 로 인증서를 받아 좀더 신뢰성있는 사이트로 배포 ci/cd자동화 (무중단 배포는 자신이 없다..) properties 암호화 지난 주 목요일부터 현재까지 배포에만 신경을 쓰고 있는데 목요일 인스턴스 생성 깃허브 액션 설정 금요일 RDS 버그 픽스 ✔ 자고일어나니 안되는 깃허브액션 에러 픽스 ✔ 토요일 배포하고나니 프론트와 CORS에러.. 밤샘 일요일 CORS에러... 결..

22.10.17 (월) 78일 차

오늘 한 것 Codedeploy 자동배포 활성화 하기 Jascyrt로 properties 파일 암호화하기 ubuntu 환경변수 설정하기 에러노트 적기 오늘 배운 것 https://wearegolden.tistory.com/m/entry/Solvedgit-Action-Deploy-GitHub-Actions-has-encountered-an-internal-error-when-running-your-job-ubuntu-Checking-for-a-new-Ubuntu-release-Please-install-all-available-updates-for-your-release-before-upgrading-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0 https://wearegolden.t..

[Solved][CORS] Access to XMLHttpRequest at 'https://...' from origin 'https://...' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested reso..

문제상황 무사히 배포를 한 뒤에 프론트와 연결하자마자 뜬 에러. 해결방법 기존에 했던 cors설정을 다 뒤엎었다. [CorsConfig] @Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowCredentials(true); configuration.addAllowedOriginPattern("*"); configuration.add..

🚨에러노트 2022.10.17

[Solved][ubuntu] ssh 접속 time out & no connect 에러 & 해결

문제상황 서버 배포를 하고 확인을 하던 중 에러가 있어 고치려고 하다가 ec2 인스턴스를 재부팅하였다. 탄력적 IP를 연결하지 않았어서 재부팅 시 IP가 변경이 되었고 , 다시는 이런일이 없도록 탄력적 IP를 받아 새로 연결해주었다. 그리고나서 Ubuntu에 접속하려고 하니 접속이 되지 않았다. 인터넷이 느리다고 하기엔 너어무 긴 시간동안 반응조차 없었다... 이상태로 에러 메세지 조차도 안떴다 .. 일단은 어떠한 원리로 ssh에 접속하고 어느 부분에서 문제가 생겼는지 가설을 세워보자 사용자가 서버에 원격접속하기 위해 연결을 설정하느 프로세스를 시작한다. 기본적으로 22포트를 사용하여 통신 서버는 사용자에게 서버자 지원하는 프로토콜의 버전을 응답으로 보냄. 사용자는 서버가 지원하는 프로토콜의 버전 중 자..

🚨에러노트 2022.10.17

[Solved][git Action] Deploy - GitHub Actions has encountered an internal error when running your job & [ubuntu] Checking for a new Ubuntu release Please install all available updates for your release before upgrading 에러 & 해결

문제상황 분명히 설정하고 잘 돌아가는 것까지 확인했던 깃허브 액션이 하룻밤새에 에러가 떴다 따로 어느 부분이 문제인지 뜨는게 아니라 job 이 취소 되었다고만 뜬다 우분투 버전 때문인가?? Git Hub Action을 설정하기 위해서 Ubuntu에 Codedeploy-agent를 설치해야하는데 가장 최신 버전인 22.04 버전은 아직 지원이 안된다고 해서 예전 버전이긴하지만 그래도 안정적이라고 생각되는 18.04 버전으로 인스턴스를 생성했었다! 잘 작동되는 걸 확인했는데 이렇게 하루만에 ...? 그래도 혹시 몰라서 Ubuntu Upgrade를 시켜 주었다. 🚩(당시에는 캡쳐를 하지 못하여서 현재로 대체. 이미 업그레이드가 된 상황이라서 다르게 나온다!) 👉 상단에 현재 우분투 버전이 나오고 아래쪽에 보면..

🚨에러노트 2022.10.17