전체 글56 [CS] HTTP와 HTTPS 이 글을 쓰게 된 이유 프로젝트를 진행하며 웹캠을 사용할 일이 있었다. 서치를 해보니 웹캡을 사용하려면 꼭 SSL인증서를 받아서 HTTPS를 이용해야한다는 정보를 얻었다. 기존에도 HTTPS가 대충 무엇인지는 알았으나 정확히는 몰랐다. 그러다보니 직접 구현하는데에 어려움을 겪었고 이 참에 정확하게 정리하고자 이 글을 쓰게되었다. HTTP란? HyperText Transfer Protocol의 약자이며 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 여기에서 HyperText란 HTML로 생각하면 된다. 즉, HTTP란 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. 요청을 보낼 때 호스트 앞에 http가 있는 것을 많이 봤을 텐데 이는 해당.. 2022. 9. 28. [JPA] N + 1 문제 2 (fetch join 최적화) Intro 앞선 게시물에서 N+1문제가 무엇인지 알아보고 기본적으로 지연 로딩으로 설정하는 이유에 대해서 알아봤다. SQL을 조금 알고 있는 사람이라면 앞 게시물에 나오는 쿼리를 보고 join을 사용해서 단 한번의 쿼리로 다 가져올 수 있지 않을까 생각이 들것이다. 오늘은 JPQL에서 join을 최적화해서 할 수 있는 fetch join에 대해서 알아보자. 연관관계는 저번이랑 동일하게 위와 같다고 가정한다. fetch join 문제 발생 저번이랑 동일하게 Member를 가져올 때 Team도 함께 가져오는 상황이라고 가정하자. 이를 JPQL로 표현하면 다음과 같다. select m from Member m; 지연 로딩을 사용하면 이렇게 가져온 데이터에서 .getTeam 같은 메소드를 이용해 team의 데이.. 2022. 9. 28. [JPA] N + 1 문제 1 이 글을 쓰게된 이유 JPA를 사용하다보면 예상보다 DB 쿼리가 더 많이 나가서 성능에 문제가 생기는 경우가 있다. 이 경우 대부분 개발자도 모르게 N+1문제가 기본적으로 깔려있는 경우가 많다. 그렇다면 왜 이러한 문제가 발생하고 어떻게하면 해결할 수 있는 지 자세하게 알아보자. N+1문제란? @Entity public Class Member { @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "member", fetch = FechType.EAGER) private List orders = new ArrayList(); } @Entity @Table(name = "ORDERS") public Class Order { @Id @GeneratedVa.. 2022. 9. 28. [보안] CSRF 파헤치기 0. 이 글을 쓰게 된 이유 JAVA SPRING MVC를 이용해서 개인 프로젝트를 하던 중에 CSRF 또 만났다. 이전에도 봤던 놈이고 개념을 안다고 생각해서 나름대로 해결을 해서 진행을 하려고 했는데 문득 관연 내가 CSRF에 대해서 완벽하게 알고있나 의문이 들었다. 그리고 지금 CSRF를 피하려고 사용하는 간편한 방법이 정말 보안 상 옳은 것인가에 대한 의문 또한 들었다. 이렇게 넘어갔다가는 나중에 호되게 당할 것 같아서 이 참에 확실하게 집고 넘어가려고 이 글을 작성하게 되었다. 1. CSRF(Cross-Site Request Forgery)가 뭔데 웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해서 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 .. 2022. 9. 28. [Spring] Spring Security에 대해서 알아보자(로그인 인증 구조) 이 글을 쓰게 된 이유 동작과정편에서 설명했던 것처럼 이번 글은 로그인 과정에 대해서 알아보고 활용하는 것까지 예시를 통해 알아보자. 이 글을 완벽하게 이해하기 위해서는 앞선 동작 과정편을 보고 오는 것을 추천한다. 1. 로그인 인증 구조 동작과정편에서 설명한 것처럼 인증은 filter에 의해서 진행되고 DelegatingFilterProxy로 등록된 FilterChainProxy 빈을 이용한 SecurityFilterChain으로 진행되게 된다. 아래 그림과 같다. 1.1 AbstractAuthenticationProcessingFilter SecurityFilterChain 안에는 spring security에서 제공하는 여러가지 filter들이 있다고 했었다. 이때 Authentication(로그인.. 2022. 9. 28. [Spring] Spring Security에 대해서 알아보자(동작 과정편) 이 글을 쓰게 된 이유 처음으로 spring security를 사용하게 되면서 큰 어려움에 부딪혔다.. 그리고 막상 찾아보려고 하니 마땅한 자료가 조금 부족한 느낌이었고 공식 문서를 보면서 학습하려니 쉽지 않았다. 아무튼 나 같은 사람들을 위해 내가 며칠동안 고민하고 이해한 내용들을 정리해보려고 한다. 물론 spring security은 더 깊고 넓은 내용이 있다. 일단 큰 틀과 그 틀을 활용하는 기본적인 방법들에 대해서 찍먹해보자. 0. Spring Security 학습 방향 spring security를 학습하며 '다른 부분을 모르고 지금 이걸 읽어도 되나?'라는 생각이 지속적으로 들었다. 나는 야생형 학습 스타일이라서 사용하면서 부족한 부분을 채우는 편인데도 불구하고 spring security는 .. 2022. 9. 28. 이전 1 ··· 5 6 7 8 9 10 다음