[Infra] private subnet에서 NAT gateway 없이 외부 인터넷에 요청보내기(feat. 포워드 프록시)
·
Infra
private subnet의 EC2에서 VPC내의 public subnet에 있는 EC2를 통해 외부 인터넷으로 요청을 보내도록 설계해봤다.  기존에는 public subnet에서 설치하고, 그 파일들을 명령어를 통해 수동으로 private subnet의 모니터링 서버로 전달해주는 방식을 사용했는데 이 방식이 너무나도 번거로웠다….. 어떻게 편하게 바꿀 수 있을까 고민하던 중, 요청을 public subnet의 EC2을 우회해서 보내면 안되나?! 라는 생각이 문득 들었다. 대충 생각했던 구조는 아래와 같다.  현재 public subnet의 EC2에는 모두 nginx를 설치해둔 상태이기 때문에 이걸 잘 써먹으면 가능할 것 같았고, 서치해보니 Nginx의 포워드 프록시 기능을 사용하면 이러한 흐름이 가능하..
[이슈/Infra] EC2가 지속적으로 터지는 문제
·
이슈
요약 : EC2 디스크 용량(8G) 문제였다. 운영하고 있는 서비스에서 EC2가 지속적으로 중단되는 문제가 발생했다……우리의 문제 상황은 다음과 같았다.브랜치에 머지된 후 git workflow를 통한 CI/CD과정 중 중단서비스 사용 중 갑자기 중단. 서치를 해보니 swap 메모리 부족… 코드 자체 문제(무한 루프)등등.. 많은 문제 상황과 해결방법이 나왔지만 우리에게 적용되지는 않았다.우리는 AWS에서 인스턴스를 재부팅했을 때 다시 정상적으로 구동되었고, 시간이 흘렀을 때 1, 2의 상황에서 EC2가 중지되었다.  현재 운영 중인 서비스인데 계속 중단되어 PM과 프론트 팀에게 너무 미안했다ㅜㅜ… 어떻게든 해결해보려 다시 미친듯이 구글링을 했지만 뚜렷한 문제 파악을 못했다….  결국 모니터링 도구(프로..
[회고] 2024년을 마치며
·
회고
2번째 사춘기였던 2024을 마치며  벌써 2024년이 끝났다. 말도 안돼..2024에는 나는 올해 4학년이었는데, 저학년 때 미리 학점을 채워놓아 1학점만 수강신청해서 학교에 가지 않았다. 그 때 21학점에 계절학기에.... 정말 힘들었는데 지금 생각해보면 잘한 일 같다. 그 덕에 좀 더 대외활동, 프로젝트에 집중할 수 있었다.  우선 이뤄낸 것, 한 것들을 시간대 별로 정리해보자면 아래와 같은 듯(1월) IT 연합동아리 UMC에서 첫 Spring 프로젝트 [주인장] 참여 (3월) IT 연합동아리 SOPT 서버 파트 붙음(7월) SOPT 팀빌딩으로 프로젝트 [한끼족보]에 서버 팀원으로 참여(10월) 한끼족보, 주인장 정식 출시 아침에 수영하고... 동아리하고... 프로젝트하고... 스택 공부하고.. 친..
[회고] 2주간 합숙 개발 했던 프로젝트 한끼족보 회고
·
회고
SOPT 34기 면접보고 나온 직후 떨어지겠군….생각하고 인스타 언팔한지가 엊그제인데 벌써 9월이다. 곧 있으면 35기 신입 회원 합격자 발표날이던데 미루고미루다가 회고를 이제서야 작성해본다… SOPT 자체의 회고는 아니고, SOPT에서 참여했던 프로젝트 회고이다. 여러모로 난 운이 좋은 사람이라는 것을 느낀 프로젝트였다.팀빌딩 SOPT의 팀빌딩은 [기획 경선]을 통해 많은 투표수를 받은 일부 아이디어들이 선발된 후 이루어진다. 아이디어가 선발되면 그 아이디어의 기획자는 TL(Team Leader)가 된다.  아무튼 이렇게 선발된 아이디어에 기획, 개발, 디자인 파트가 지원하는 식이다. 기획경선 ~ 팀빌딩까지 약 일주일의 시간이 있었는데, 이 일주일동안 합류하고 싶은 아이디어의 TL에게 자신을 어필하면 ..
[JPA] JPA 톺아보기
·
톺아보기
💡 프로젝트를 앞두고 JPA를 공부했을 때 작성했던 글  프로젝트를 앞두고 JPA에 대해 예제를 통해 한번 다시 톺아보려고 한다. 간단히 설계한 ERD는 아래와 같다.예시요구사항학생은 학과 1개에 소속된다.학생은 여러 게시글을 소유한다.더미데이터 더미데이터는 아래와 같이 넣었다.학과는 2개이고, 학생은 3명으로 그 중 2명이 DEPT1에, 1명이 DEPT2에 소속된다. STU1은 post를 3개, STU2는 post를 2개 소유한다. department poststudent Entity 코드DataGrip을 사용해 더미데이터를 넣을 것이기 때문에 @Getter 외에 불필요한 Lombok 어노테이션은 선언하지 않았다. 모두 양방향 매핑했고, 지연로딩(FetchType.LAZY) 설정을 해주었다. Depa..
[고민/JPA] JPA 특성을 고려한 쿼리문 작성 고민하기
·
고민
동일한 내용을 프로젝트 팀블로그에도 게시하였습니다.  https://teamhankki.tistory.com/9 쿼리 최적화 고민(feat.JPA)작성자 | 서버 팀원 박서진   사용 기술JPASpring boot(3.3.1)Database : PostgreSQL   한끼족보 서버는 이번에 데이터베이스에 접근하는 프레임워크로 JPA를 채택하였는데, 요구사항 변화에 따라 JPA의 한teamhankki.tistory.com  사용 기술JPASpring boot(3.3.1)Database : PostgreSQL   서버로 참여한 팀에서 이번에 데이터베이스에 접근하는 프레임워크로 JPA를 채택하였는데, 요구사항 변화에 따라 JPA의 한계에 대응하며 쿼리 최적화를 해보았다. 특히 짧은 개발 기간 동안 고민과 변화..
[GIT] 실수로 한 commit 수습을 위해 patch 파일 이용해보기
·
GIT
IDEA : IntelliJ환경 : MAC M1 문제상황remote의 main 브랜치에 변경사항이 생겨서 rebase 했는데 내 이전 commit에 git에 올라가면 안 되는 정보가 포함되어 있었다.  특정 코드가 prod 환경에서만 돌아가도록 Environment를 주입받고 Spring profile이 prod인지 검사하는 코드가 포함되어있었다. 그런데 테스트 하느라 기존의 application.yml의 이름을 application-prod.yml로 바꾸었는데, 원래 commit할 땐 제외했지만 rebase하는 과정에서 충돌 해결하고 다시 commit하는 과정에서 포함되어버린듯하다. .gitignore을 확인해보니 [application.yml] 파일만 제외하도록 되어있었다. 다행히 아직 push하지 ..
[이슈/Docker, EC2] Docker Image 새로 갱신 안되는 현상 (no space left on device)
·
이슈
문제계속 develop에 코드를 머지하고 CI/CD가 정상적으로 돌아갔음에도 Swagger에서 해당 API가 나오지 않는 현상이 나타났다. 분명히 controller에 추가했음에도 Swagger 어디에서도 찾아볼 수가 없었다. 아무래도 서버에 반영되지 않는 것 같았다….  고민 1 - 캐시문제?Docker를 빌드할 때 기존의 Image 레이어가 캐시로 남아서 그런 현상이 있을 가능성이 있다는 글을 보았다.해당 현상은 아래의 명령어로 해결할 수 있다.docker build --no-cache -t ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_IMAGENAME }} . 그런데 나는 아무리 생각해도 이 문제는 아닐 것 같다는 느낌이 들었다. 이런 이슈가 ..
[이슈/Redis] Unable to connect to Redis (로컬)
·
이슈
환경 : MAC m1로컬 redis에 connect가 안됐던 이슈 문제 어제까지 잘만 되던 프로젝트(Spring boot)가 갑자기 redis connect가 안되어서 build가 안되는 문제가 있었다.  아래 사진처럼 계속 Unable to connect to Redis 라고 나왔다. 시도 1 - Redis 껐다키기내 redis 문제인가 하고 redis를 중단했다가 다시 실행해봤다. 명령어는 아래와 같다. brew services restart redisredis를 껐다 키고 노트북을 재부팅했는데도 같은 현상이 일어났다. 시도 2 - Redis 삭제했다가 다시 깔기그래서 이번엔 아예 삭제해봤다…..brew uninstall redis 이 명령어를 입력하니까 아래와 같이 잔여물(?)이 남았다는 Warni..
[이슈/Docker] Docker hub 사이트 sign In 버튼 클릭시 Access_denied We found an existing Docker account..(생략) 문제
·
이슈
원인 : 사이트 쿠키 문제Chrome 브라우저 환경입니다. 문제 Docker hub 사이트에서 아래의 sign in 버튼을 눌렀을 때 로그인창으로 넘어가지 않는 문제가 있었다. 버튼을 눌렀을 때 계속 로그인 입력창이 아닌 아래와 같은 창이 나왔다.추측  특정 이메일이 이미 입력되어져있고, 그 이메일로 소셜로그인 url로 리다이렉트되는 동작을 하는 듯 보였다. 나의 경우엔 그 이메일로 이미 일반로그인으로 가입이 되어져있었기 때문에 저런 error 창으로 바로 이동되는 것 같다.  옛날에 시도했던 로그인 기록이 쿠키로 저장되어져있는건가..? 라는 의문이 들어서 크롬 시크릿탭으로 접속했더니 정상적으로 아래와 같은 로그인 화면으로 이동해졌다. 아무래도 잔여물(?)의 문제가 맞는 듯.  해결 - Docker Hu..
픽쳐팍
악깡버 | 블로그 이사 중