본문 바로가기

전체 글26

Jpa 영속성전이(Cascade) 및 고아 객체 먼저 기존에 서버에서 외래키 관련해서 에러가 났었다. 대략적인 내용은, 외래키로 묶여있는 두 테이블에서 하나의 엔티티를 삭제할 때, 다른 엔티티가 참조하는 값이 없어져서 나오는 오류였는데 (참조무결성) 예전에 정처기공부할때 Cascade 제약조건이 생각나서, 이전에 깃헙에서 여러 코드를 볼때, 연관관계에 cascade 를 옵션으로 달아주던게 생각나서 공부를 해봤다. 내용은 인프런 강의(자바 ORM 표준 JPA 프로그래밍 - 기본편)을 듣고 정리해봤다. 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 같이 영속 상태로 만들고 싶을 때 (예를들어 One to Many 관계에서 One 을 저장 할 때, Many들도 같이 저장하고 싶을 때 사용) 예를들어 Parent, Child 엔티티가 있고, 둘의 관계가.. 2021. 9. 26.
Java Out Of Memory Error: Java heap space 평소에는 별일이 없다가. 갑자기 프론트엔드분이 서버가 내려간거냐고 메세지를 보내셨다. 엉..? 그럴리가..? 하고 확인을 해봤는데 정말로 서버가 내려갔었고, 서버 로그에는 Java Out Of Memory Error: Java heap space 이 적혀있었다. 물론 ec2 t2 micro의 1GB 메모리를 사용하고 있어서, 뭐 스팩을 올리면 되겠지.. 라는 막연한 생각을 했었는데. 문득 든 생각은 그럼 사이즈를 어디까지 늘려야 하는거지?? 였다. 그래서 한번 힙 사이즈에 대해서 공부를 했다. min heap size(최소 힙 메모리 사이즈) max heap size(최대 힙 메모리 사이즈)를 설정 할 수 있는데 기본적으로, 즉 default는 max heap size는 해당 서버의 메모리의 25프로, .. 2021. 9. 19.
X-Forwarded_FOR(XFF) 우선, 로드벨런서가 앞단에 붙은 상태에서, 스프링 부트 서버에서, 사용자의 ip를 기록하고 싶었고, 이를 로그를 통해서 나타내고 싶었습니다. 그래서 간단하게 Logback에서 제공하는 MDC를 이용해서, 이 안에 사용자가 보내는 Request에서 getRemoteAddress()를 호출해서 ip를 꺼내서 넣으면 될 줄 알았습니다. 하지만, 로그를 남겨보니, 계속 같은 ip주소를 리턴을 했습니다. 로그를 남길 때, 다른 헤더들도 같이 남기게 했었는데, 요청하는 곳의 아이피는 X-Forwarded-For 이라는 해더에 담겨져서 오는 것 같아서 해당 내용을 찾아보았습니다. https://88240.tistory.com/526 X-Forwarded-For(XFF) 란? XFF는 HTTP Header 중 하나로 .. 2021. 9. 13.
Api key 적용하기 배경 방문 예약 시스템에서는 방문 예약시 서버에서 URL Shortener api를 사용해서, 단축 Url을 만듭니다. 하지만, 아무런 제약이 없어서 누구나 호출해서 사용 할 수 있었습니다. 만약 악의적인 사용자가 있다면 우리서버에서 돌아가고 있는, 단축 URL 서비스를 마음대로 이용 할 수 있는 상황이었으며, 이 API를 우리 어플리케이션에서만 혹은 우리가 지정한 사용자만 호출 할 수 있게 하고 싶었습니다. - 우리 어플리케이션 외부(Postman)에서도 api가 정상적으로 호출되는 모습 API 인증방식 api 호출을 인가하는 방식에는 여러가지가 있습니다. (참고) 대표적으로 HTTP Basic Authentication OAuth 2.0 (Token in HTTP Header). API Keys 가 .. 2021. 8. 22.