본문 바로가기

Java74

Spring Security의 작동 방식 알아보기 Spring Security는 Spring MVC 영역 전에 작업이 수행됩니다. Spring MVC를 공부하면서 자주 보게되는 Spring MVC flow chart인데요. 위 차트에서는 Incoming request가 바로 Front Controller(=Dispatcher Servlet)으로 전달되는 것으로 표현되어 있습니다. 맞는 말이지만 사실 Front Controller에 전달되기 전에 'Filter'라는 것들을 거치게 됩니다. 보라색 상자로 표현된 Client가 웹브라우저로 HttpRequest를 보내면, Servlet Container는 'FilterChain'이라는 Filter들이 연결되어 순서대로 실행될 수 있는 체인을 생성합니다. (Filter Chain은 Servlet Containe.. 2022. 7. 28.
IntelliJ 콘솔 한글 깨짐 해결법 도움말 -> 사용자지정VM옵션편집 메뉴 클릭하여 vmoptions에 -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 이 두 설정을 추가해주니 정상적으로 한글이 콘솔에 출력되었습니다. 참고자료 https://da-nyee.github.io/posts/intellij-console-encoding-issue/ [IntelliJ] 콘솔 한글 깨짐 (Console Encoding Issue) Introduction da-nyee.github.io 2022. 7. 28.
LSCS 구하기 LSCS는 Largest Sum of Contiguous Subarray의 약자로, 연속된 부분배열의 합들 중 가장 큰 합을 의미합니다. 연속된 부분 배열이란 예를 들어서 전체 배열이 {1, 2, 3} 인 경우에 {1}, {1,2}, {1,2,3}, {2}, {2,3}, {3} 과 같이 인접한 원소들로만 이루어진 집합을 의미합니다. 이 배열의 LSCS는 부분배열 {1,2,3}의 원소의 합인 6이 됩니다. 원소들이 0이상의 정수라면 단순히 모든 원소를 다 더하면 LSCS가 되겠지만, 음수가 포함되는 경우는 조금 다른 결과가 나올 것입니다. 위의 문제를 만났을 때 배열의 index를 포인터 삼아 포인터를 옮겨가며 모든 부분배열 원소의 합을 각자 구한 뒤, 그 중에서 가장 큰 값을 구하는 방법을 사용했습니다... 2022. 7. 28.
em.flush() vs tx.commit() em.flush() 와 tx.commit()의 차이는 무엇일까요? tx.commit()을 하면 내부적으로 em.flush()가 수행된다고 합니다. em.flush()는 데이터를 DB에 저장해주는 역할을 하는데, tx.commit()도 DB에 데이터를 저장하는 용도로 알고 있었기 때문에 tx.commit()은 em.flush()외에 추가적으로 어떤 기능을 하는 것인지 궁금해졌습니다. 1 2 3 4 5 em.flush() - It saves the entity immediately to the database with in a transaction to be used further and it can be rolled back. em.getTransaction().commit - It marks the en.. 2022. 7. 23.
Spring Rest Docs 만들기 Spring에서 배운 내용 중에 현재로서 제가 제일 좋아하는 부분이 바로 Spring Rest Docs를 만드는 것입니다 호호 잘 정리된 API 문서를 보면 기분이 좋더라구요. Spring Rest Docs는 자동으로 API 문서를 제작해주는 기능인데, 수기로 API 문서를 작성할 때 생길 수 있는 오류를 막아주기 때문에 굉장히 유용하다고 합니다! 한가지 Spring Rest Docs를 제작하기 위해 넘어야 할 산은 Controller의 method를 모두 pass해야만 한다는 점입니다. 이 역시 코드를 여러번 작성하다 보면 익숙해지겠죠? 이 포스팅에서는 Spring Rest Docs를 만들기 위해 준비해야하는 것들과 문서에 포함할 내용을 어떻게 코드로 알려주면 되는지 알아보도록 하겠습니다. Spring.. 2022. 7. 19.
Entity mapping-Cascade의 역할 Cascade의 역할을 제대로 알지 못해 힘들었던 며칠 🥲 눙물이 납니다.. 그래도 덕분에 Entity mapping에 대해서도 좀 더 잘 알게되고 Entity와 Dto 간 mapping도 여러번 수정해 보며 어떻게 하는 것인지 좀 더 알게된 시간이었습니다. 먼저 Cascading이 언제 필요한 것인지 보면, Cascading은 두 entity의 존재가 서로에게 의존적일 때 필요합니다. 예를 들어서, Member-Address라는 관계가 있다고 했을 때 Address는 Member가 있어야만 그 의미를 갖게 됩니다. (Member 정보는 없는데 주소만 있다면 누구의 주소를 의미하는지 그 쓰임이 무색해질테니까요) 그렇기 때문에 Member 정보를 삭제할 때 그와 관계된 Address 정보도 같이 삭제되어야.. 2022. 7. 17.
반응형