Java

·Spring
안녕하세요, 이번에는 Spring MVC 기반의 애플리케이션에 동작하는 Spring Securtiy Architecure에 대해 정리를 해보려고 합니다. 본문은 https://docs.spring.io/spring-security/reference/servlet/architecture.html 을 기반으로 작성되었습니다.📌 Filter는 무엇인가?Spring Servlet에 대한 Spring Security의 지원은 Servlet Filter에 기반하고 있습니다. 따라서 Spring Security를 이해하기 위해서는 Spring MVC에서 필터가 어떻게 동작하는지 알고 있는 것이 중요합니다. 클라이언트가 애플리케이션에 요청을 보내면, Container(Servlet Container)는 요청 URI경..
·Java
코딩 컨벤션이 중요한 이유일관된 형식과 스타일을 유지하게 해주어 가독성이 향상되고, 개발 생산성이 증가합니다.코드는 시간이 지남에 따라 변경되고 확장되기 마련입니다. 일관된 코드 스타일을 유지하면 다른 개발자가 코드를 수정하거나 업데이트 하는 경우 쉽게 접근 할 수 있습니다.어느 컨벤션에 따라야 할까?코딩 컨벤션은 사실 정답이 정해져 있는 것이 아니며, 기업마다 다르고 심지어 팀 단위로도 다르기도 한다. 따라서 사람들이 많이 사용하는 코딩 컨벤션인 구글의 코딩 컨벤션을 적용해보기로 하였으며,일관성을 유지하는 것이 중요합니다.자바에서 쉽게 코딩 컨벤션을 적용하는 방법대부분의 IDE에서는 Auto Formatting을 지원하고 있습니다.vscode에서 eslint와 prettier를 사용하듯 자바를 사용할 ..
·Java
들어가며자바 라이브러리 중에는 close 메서드를 호출해 직접 닫아주어야 하는 자원이 많다.InputStream, OutputStream, java.sql.Connection 등이 있는데, 자원 닫기는 클라이언트(여기서의 클라이언트는 우리 코드를 직접 작성해야하는 개발자이다)가 놓치기 쉬워서 예측할 수 없는 성능 문제로 이어지기도 하니 주의해야한다.이런 자원 중 상당수가 안전망으로 finalizer를 활용하고는 있지만, finalizer는 그리 믿을만 하지 못하다.finalizer에 대해서 알아보기 전에, close에 대해서 간단하게 알아보자. 그냥 단순히 close를 해주면 문제가 생길 수 있다!보통 나는 지금까지 close 를 사용하면 아래 코드처럼 사용하였는데.. 이는 잘못된 사용방법이다.Buffe..
·Java
들어가며 😊정적 팩토리 메서드와 생성자는 선택적 매개변수가 많을 때, 적절히 대응하기가 어렵다는 단점이 있다.그래서 이런 경우에는 점층적 생성자 패턴, 자바 빈즈 패턴, 빌더 패턴을 사용해서 대응할 수 있다.우선, 점층적 생성자 패턴, 자바 빈즈 패턴, 빌더 패턴을 살펴보고 어떤 상황에 사용할지 알아보도록 하자.점층적 생성자 패턴이란? (telescoping constructor pattern) 😁점층적 생성자 패턴은 나도 많이 사용했었고, 가장 많이 사용되어지고 있는 방식이다.코드로 설명하자면public class NutritionFacts { private final int servingSize; // 필수 private final int servings; // 필수 p..
·Algorithm
문제 해석 😀구현문제를 풀때 가장 중요한 것은 두가지이다.1. 메서드 분리메서드를 분리해야 디버깅을 하기 편함각 메서드는 본인의 역할”에만” 충실할 것2. 헷갈리지 않도록 심플하게 구현할 것구현문제 ⇒ 보통 문제의 볼륨이 큼주사위 굴리는 부분처럼 헷갈릴 수 있는 부분은 최대한 단순하게 나의 풀이 ✒1. 주사위 객체가 메서드를 갖도록 하자2. 점수를 미리 계산해두자점수를 얻는 계산을 할때, 굴리고 점수 계산하고, 굴리고 점수 계산하지말고한번에 DP 테이블을 계산을 다 해준 다음에, 주사위를 굴리면서 점수 계산을 하는 방향이 바람직하다고 생각했다. 적용 알고리즘 🎯bfs, 완전탐색, 구현 나의 코드 💻package BJ;import java.io.BufferedReader;import java.io.I..
월월월월2
'Java' 태그의 글 목록