전체 글
-
OAuth2.0 이란 ?카테고리 없음 2024. 6. 13. 16:30
이 글은 본격적으로 프로젝트하기 전에 OAuth2.0의 이론을 공부하고 작성한 글이다 인증과 인가 왜 나왔을까? A라는 서비스가 있다 유저는 A 서비스를 이용하기위해 로그인을 하려고한다 그래서 구글 Id와 패스워드를 A 라는 서비스에 넘겼다 A 서비스는 구글에 로그인을 시도하였다 로그인 성공한 뒤 사용자 정보를 받고 유저에 서비스를 제공 했다이런식으로 진행이 되는데 하지만! 여기에는 큰 문제가 있다 1. 유저 입장에서는 A 서비스를 신뢰 할 수 없다유저가 A 서비스에 구글 Id와 패스워드를 줌으로써 A 서비스가 유저의 구글 정보를 이용해서 어떤 정보를 가져오고 악용할지 모르기 때문이다2. A서비스 입장에서는 큰 부담을 가지게 된다A 서비스에서 유저의 구글 Id와 패스워드를 직접 관리하는건 엄청난 부..
-
[Java] 새로 도입된 Record 무엇인가?Java 2024. 6. 12. 14:03
Java11를 사용하다가 최근 플젝으로 인해 Java17로 바꾸면서 Record란 클래스를 접하게 되어 공부한 내용이다 Record?자바 14 버전에 도입되고 16버전에서 정식 스펙으로 채택된 클래스이다데이터를 다루기 위한 데이터 클래스로 사용된다 자동으로 생성자를 만들어주고 getter, equals, hashCode, toString을 자동으로 생성필드를 final로 생성해줌으로써 불변 데이터로 관리 할 수 있음record 내 각 필드(헤더에 나열한 컴포넌트)는 private final로 정의된다다른 클래스를 상속 받을 수 없지만, 인터페이스로는 구현이 가능하다. (extends : X, implements : O)레코드 내부에 멤버 변수(인스턴스 필드)를 선언할 수 없다. 그러나 static 변수..
-
[자료구조] 그래프(Graph)자료구조 2024. 6. 10. 15:54
말하기에 앞서 우선 그래프는 비선형 자료구조이다 비선형자료구조 데이터를 일렬로 구성하지 않고 자료 순서나 관계가 복잡한 자료구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태트리와 그래프가 대표적이고 계층적 구조를 나타내기에 적절하다💡그래프란? 여러 개의 노드(node)와 이 노드들을 연결하는 간선(edge) 으로 관계를 표현한 자료구조이다.정확히는 정점(vertex) 간의 관계를 표현한 조직도 이다. 구성 요소노드(node) : 정점(Vertice) 라고도 하는 데이터가 저장되는 그래프의 기본 원소간선(edge) : 노드 간의 관계를 나타내는 선인접 정점(adjacent Vertex) : 간선에 의해 직접 연결되어 있는 정점 ex) 1 노드 기준으로 인접 정점은 0, 2, 3 이다단순 경..
-
[네트워크] 쿠키(Cookie), 세션(Session), 토큰(Token)네트워크 2024. 6. 9. 20:31
💡이걸 왜 쓸까?http 특징때문이다http는 웹에서 이루어지는 모든 데이터전송의 기본이 되는 프로토콜이다이 http는 비연결성(connectionless), 비상태성(stateless)라는 특징을 가지고 있다이런 특징으로 서버는 확장성이 높아진다는 장점을 가질 수 있다 Connectionless 프로토콜(비연결 지향)클라이언트가 서버에 요청을 했을 때, 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식이다.Stateless 프로토콜(상태정보 유지 안함)클라이언트의 상태 정보를 가지지않는 서버 처리 방식이다. 클라이언트와 첫번재 통신에 데이터를 주고 받았다 해도, 두버재 통신에 이전 데이터를 유지하지않는다. 문제점 한 사람이 웹사이트를 사용하기 위해 서버에 보내는 모든 요청은 연결성이 없어서 항상 다른..
-
[백준] 2644 촌수계산 - Java알고리즘 문제 풀이 2024. 6. 3. 20:15
문제 - 촌수계산https://www.acmicpc.net/problem/2644 접근 방법 이 문제도 그래프 완전 탐색 문제이다 즉, bfs와 dfs로 문제를 풀 수 있다작자는 dfs로 문제를 풀었다코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int n; static int m; static int start; static int end; static int[][] map; static int[] dist; public static..
-
[백준] 4963 섬의 개수 - Java알고리즘 문제 풀이 2024. 6. 2. 15:48
문제 - 섬의 개수https://www.acmicpc.net/problem/4963 접근 방법 이 문제도 그래프 완전 탐색이다 즉, bfs와 dfs로 풀 수 있는 문제이다하지만 이 문제가 다른 점은 대각선에 있는 것도 탐색을 해야 한다는 것이다 이 부분만 잘 구현 하면 될 것 같다 코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; static int M; static int[][] map; static boolean[][] visited; ..
-
[디자인 패턴] MVC 패턴? MVP 패턴? MVVM 패턴?디자인 패턴 2024. 6. 1. 13:40
MVC (Model - View - Controller) 패턴Model, View, Controller 세개의 컴포넌트로 구성되어 있는 패턴이다1. Model애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다애플리케이션의 데이터 및 비즈니스 로직을 담당뎅이터베이스와의 상호작용, 데이터 검증 등을 수행한다 2. View사용자 인터페이스 요소를 나타낸다모델을 기반으로 사용자가 볼 수 있는 화면을 뜻한다사용자 입력을 컨트롤러에 전달한다모델이 가지고 있는 정보를 따로 저장하지 않아야 한다 3. Controller모델과 뷰를 잇는 다리 역할을 한다모델과 뷰의 생명주기를 관리한다사용자 입력을 처리하고 모델을 업데이트하며 모델에서 받은 데이터를 뷰에 전달한다 장점 재사용성과 확장성이 용이하다 단점애플리케..
-
[Spring] 스프링 빈(Bean) 등록 방법Spring Core 2024. 5. 30. 16:44
이글은 Spring Bean 등록 하는 방법을 설명하는 글 이다이거에 앞서 Spring Bean을 알고 싶으면 아래 글을 참고 하면 된다https://hyeonni.tistory.com/65 [Spring] 스프링 빈(Bean) 이란?이글은 Spring Bean을 설명하는 글이다 이거에 앞서 Java Bean을 알고 싶으면 아래 글을 참고 하면 된다https://hyeonni.tistory.com/61 [Spring] Java Bean? Spring Bean?이글은 Spring Bean을 설명하기에 앞서 Java Bean이hyeonni.tistory.comSpring Bean 등록xml에 등록자바 설정어노테이션ex) Player.javapackage com.example;import lombok.Ge..