본문 바로가기

전체 글81

[spring security] 1. 스프링 시큐리티의 동작 원리 스프링 시큐리티란? - 스프링의 하위 프레임워크 - 스프링 기반의 애플리케이션 보안(인증, 인가, 권한)을 담당 - 각종 공격을 방어하고, 요청 헤더도 보안 처리 [ 공격의 유형 ] - 세션 고정 공격 : 사용자의 인증 정보를 탈취하거나 변조 - CSRF 공격 : 사용자 권한을 가지고서 특정 동작을 수행하도록 유도 - 스프링 시큐리티는 필터(filter)를 기반으로 동작 - 스프링 시큐리티 관련 설정 파일 (security configration 클래스 파일)에 작성한 인증 관련 메서드 위에 @bean(애너테이션)을 지정하면 해당 필터가 생성 - 즉, 특정한 경로에 요청이 오면 controller로 가기 전 필터(filter0에서 인가, 인증 작업을 먼저 진행한 후에 controller로 이동 시큐리티의.. 2024. 1. 10.
클라이언트와 서버 클라이언트와 서버 1. 클라이언트 : 서비스를 요청하는 애플리케이션 2. 서버 : 서비스를 제공(응답)하는 애플리케이션 서버의 종류 어떤 종류의 서비스를 제공하느냐에 따라 서버의 종류가 다름 서버의 포트 - 같은 컴퓨터 안에(하나의 IP)에 여러 서버 프로그램이 돌아갈 수 있어서, 이를 구별하기 위해 포트(port)를 사용 - IP는 포트(port)와 연결이 되어 있음 - 해당 서버 프로그램에 접속하기 위해서, 연결된 포트 번호에 요청하여 프로그램에 접속 [ 예시 ] 회사 대표 전화 1588-8888이고, 인사팀 내선 번호가 #1111 경우 IP 주소가 111.222.333.44이고, Email server에 접속하기 위한 포트 번호가 25번인 경우 111.222.333.44 : 25 웹 애플리케이션 서.. 2024. 1. 2.
원격 프로그램의 작성 및 실행 로컬 프로그램의 실행 static 메서드는 객체 생성없이 호출이 가능 public class HelloMain { public static void main(String[] args) { // static: 객체 생성 없이 바로 사용 가능 System.out.println("Hello"); } } 원격 프로그램의 실행 웹 브라우저에서 원격 컴퓨터의 프로그램을 호출 원격 프로그램 사용시 필요한 설정 즉, 외부에서 호출하여 사용하기 위하여 원격 프로그램 등록 필요 원격 프로그램을 다른 컴퓨터에서 호출할 수 있으려면 1. 원격 프로그램 등록 : @Controller 2. URL을 호출했을 때 실행되는 메서드를 등록 : @RequestMapping - @RequestMapping("/hello") : hello.. 2024. 1. 2.
[JAVA] 백준 10448번 : 유레카 이론 문제삼각수 Tn(n ≥ 1)는 [그림]에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다.[그림]자연수 n에 대해 n ≥ 1의 삼각수 Tn는 명백한 공식이 있다.Tn = 1 + 2 + 3 + ... + n = n(n+1)/21796년, 가우스는 모든 자연수가 최대 3개의 삼각수의 합으로 표현될 수 있다고 증명하였다. 예를 들어,4 = T1 + T25 = T1 + T1 + T26 = T2 + T2 or 6 = T310 = T1 + T2 + T3 or 10 = T4이 결과는 증명을 기념하기 위해 그의 다이어리에 “Eureka! num = Δ + Δ + Δ” 라고 적은것에서 유레카 이론으로 알려졌다. 꿍은 몇몇 자연수가 정확히 3개의 삼각수의.. 2024. 1. 2.
[JAVA] 백준 2309번 : 일곱 난쟁이 문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력일곱 난쟁이의 키를 오름차.. 2024. 1. 2.
BufferedReader, InputStreamReader Buffer어떤 데이터가 전송 될 때, 일시적으로 저장되는 메모리 영역 BufferedReader 란?Scanner와 달리 BufferedReader는 개행 문자(/n)만 경계로 인식입력받은 데이터는 String으로 고정모든 입력을 Char형으로, 버퍼를 사용하여 받음전체 입력(혹은 버퍼 단위)에 대해서만 전달되기 때문에 속도 부분에서 매우 유리(Scanner보다 속도가 빠름)  BufferedReader 사용법public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언 .. 2024. 1. 2.