문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제 풀이 package programmers.level2; import java.util.*; public class PG_LV2_프린터 { public int solution(int[] priorities, int location) { int answer = 1; List printer = new ArrayList(); for (int i = 0; i..
1. 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 2. 문제 풀이 package programmers.level2; import java.util.ArrayList; import java.util.List; public class PG_LV2_기능개발 { public int[] solution(int[] progresses, int[] speeds) { List results = new ..
이번 프로젝트에서 JWT를 사용해보려고 하여 Spring Security에 대해 조금 더 자세히 알아보려고 한다..!! 기본적인 내용들은 1편에서 2021.11.27 - [Back-end/Spring & Spring Boot] - [Spring] Spring Security에 대해 (1) [Spring] Spring Security에 대해 (1) Spring Security란? Spring 기반의 어플리케이션의 인증과 권한, 인가 등 보안을 담당하는 스프링 하위에 있는 프레임워크이다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주어 개 diddl.tistory.com 기본 용어 정리 1편에서 했지만 중요하니 한번 더..! 인증 (Authentication): 사용자 신원을..
Spring Security란? Spring 기반의 어플리케이션의 인증과 권한, 인가 등 보안을 담당하는 스프링 하위에 있는 프레임워크이다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주어 개발자는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점을 제공한다. Spring security는 Filter 기반으로 동작하기 때문에 Spring MVC 와 분리되어 관리 및 동작한다. 인증(Authorizatoin)과 인가(Authentication) 인증 (Authentication): 사용자 신원을 확인하는 행위 -> 회원가입하고 로그인 하는 것 인가 (Authentication): 사용자 권한을 확인하는 행위 -> 웹에서는 주로 역할에 따른 권한 관리 예를들어 카페에 가..
Transaction(트랜잭션)이란? 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 여러 작업을 진행하다 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이다. 따라서 트랜잭션은 더 이상 쪼갤 수 없는 최소 작업 단위를 의미하며 commit을 성공하거나 rollback으로 실패 이후 취소되어야 한다. Rollback : 오류가 발생했을 때, 오류 이전의 특정 시점 상태로 되돌려 줌 Commit : 트랜잭션에 대한 작업이 성공적으로 끝났고 데이터베이스가 일관된 상태에 있을 때 , 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산 CheckPoint : 롤백을 위한 시점을 저장 트랜잭션의 특성 ACID..
DI(Dependency Injection) - 의존성 주입 객체를 직접 생성하는게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI를 통해 모듈 간의 결합도가 낮아지고 유연성이 높아진다. 따라서 강한 결합의 문제를 해결할 수 있다. 예제를 통해 알아보자 강한 결합의 예제 1. Contoller1 이 Service1 객체를 생성하여 사용 public class Controller1 { private final Service1 service1; public Controller1() { this.service1 = new Service1(); } } 2. Service1 이 Repostiroy1 객체를 생성하여 사용 public class Service1 { private final Repositor..
정규표현식이란? 정규 표현식에 대한 개념은 이전 포스팅에서 확인.. 2021.11.10 - [Back-end/Java] - [Java] Java Pattern 클래스(자바 정규 표현식) - 사용법 [Java] Java Pattern 클래스(자바 정규 표현식) - 사용법 정규표현식이란? 특정 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식 언어 Ex) 전화번호, 이메일, 주민 번호 등! 개발할 때 형식대로 제대로 입력했는지 검증할 경우에 정규표현식을 diddl.tistory.com Matcher 클래스 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 체크할 때 주로 사용. Matcher객체는 Pattern객체의 matcher() 메소드를 호출해서 얻는다!! * 선언 코드 import java.ut..
Spring을 처음 접한 후, MVC패턴, 계층구조.. 디자인 패턴 등.. 모르는게 너무 많아 하나 씩 정리해본다.. MVC 패턴이란? Model, View, Controller 개념이 합쳐지면서 생긴 방식으로 소프트웨어 공학에서 사용되는 디자인 패턴 유형 중 하나이다. 비즈니스 처리 로직(Model)과 인터페이스 요소(Views)를 분리시켜 독립적으로 개발하기가 수월하고 효과적으로 로직 재사용을 가능하게 한다는 장점이 있다. Model : 비즈니스 영역의 로직을 처리, Controller로 부터 받은 데이터를 처리, 저장하는 역할을 한다. View : Controller로 부터 받은 Model 데이터를 바탕으로 사용자에게 표현해준다. Ex) HTML, JSP Controller : 사용자가 접근한 UR..