728x90

전체 글 163

오픈 뱅킹, 오픈 파이낸스, 마이데이터 2.0

오픈 뱅킹, 오픈 파이낸스개인으로 한정되었던 오픈뱅킹 조회 서비스가 중소기업 등 법인도 이용할 수 있도록 정보제공범위가 확대될 예정이다. 이를 통해 법인도 타 은행 계좌의 실시간 정보를 하나의 은행 사이트를 통해 한 번에 조회할 수 있게 된다. 또한 모바일 등 온라인 방식으로만 제공하던 오픈뱅킹 서비스를 은행 영업점 등 오프라인 채널에서도 이용할 수 있도록 개선될 예정으로, 은행 지점이 부족한 지역에서도 금융 소비자는 하나의 은행 지점에 방문해 다른 은행에 보유한 계좌의 조회와 이체 업무까지 처리할 수 있게 된다.(빠르면 2024년 하반기 시범운영에 착수할 예정) *오픈뱅킹: 고객이 하나의 앱에서 여러 금융기관의 계좌를 조회하고 이체할 수 있는 서비스, 금융소비자(고객)의 입장에서는 하나의 앱을 통해 여..

📕CS 2024.10.30

생성형 AI: 개념, 활용, 예상되는 문제점

📌생성형 AI란생성형 AI는 학습된 데이터를 이용해 문장, 영상, 프로그램 코드 등을 새롭게 생성하는 기능을 가진 인공지능이다. 기존 AI가 업무 자동화에 이용된 것과 달리 자체적으로 새로운 콘텐츠를 만드는 데 적용되고 있다. 기존의 AI는 주로 특정 규칙에 따라 데이터를 분석하고 예측하는 규칙 기반 혹은 예측/판별 모델을 주로 활용한다. 하지만 생성형 AI는 단순한 고정된 모델이 아니라 학습과 업데이트를 통해 스스로 학습하며, 최신 트렌드나 사용자의 피드백을 기존의 AI에 비해  빠르게 반영할 수 있다. 기존의 AI 모델은 학습 데이터를 기반으로 새로운 데이터에 대한 결과를 예측한다. 즉, 조건부 분포를 이용해 X가 Y클래스에 속할 가능성을 계산하는 것이다. 예를 들어, 고양이와 강아지 두 클래스를 ..

📕CS 2024.10.29

Access Token과 Refresh Token의 저장 위치

1년 전에 한참 졸업 프로젝트, 창업동아리 활동을 하면서 세션 기반 로그인, JWT 기반 로그인, Access Token과 Refresh Token의 개념을 공부했었다. 오늘 자율 프로젝트에서 로그인 기능을 맡아 오랜만에 다시 생각나서 정리해본다ㅎㅎ 우선, 웹은 본질적으로 무상태(stateless)로 동작하기 때문에 이런 로그인 과정이 필요한 것이다. HTTP 프로토콜 자체가 무상태(stateless)하기 때문에 서버는 클라이언트의 각 요청을 독립된 요청으로 처리한다. 즉, 사용자의 인증 정보를 확인할 방법이 필요하며 이러한 방법들이 세션 기반 로그인, JWT 기반 로그인인 것이다. 세션 기반 로그인 방식은 클라이언트에는 세션 ID만 저장하고 서버에 중요한 사용자 정보를 저장한다. 세션 ID 자체에는 중..

📕CS 2024.10.28

[TypeScript]TypeScript 이해하기(1) - 타입 집합 / 추론 / 단언

✨타입과 집합 타입은 여러 개의 값을 포함하는 집합으로 생각할 수 있다. 그리고 타입 간에는 서로 포함 관계(슈퍼-부모 타입, 서브-자식 타입)이 존재한다. ✔타입 호환성A와 B 두개의 타입이 존재할 때 A 타입의 값을 B 타입으로 취급해도 괜찮은지 판단하는 것업캐스팅: 서브 타입의 값을 슈퍼 타입의 값으로 취급하는 것 ✔다운캐스팅: 반대로 슈퍼 타입의 값을 서브 타입의 값으로 취급하는 것 ✖→ 집합의 포함 관계처럼 업캐스팅은 모든 상황에 가능하지만, 다운 캐스팅은 대부분의 상황에 불가하다. ✔Unknown(전체 집합)모든 서브 타입을 부분집합으로 갖는 전체 집합으로 unknown 타입 변수에 모든 타입의 값을 할당할 수 있다. 반대로 unknown 타입의 값은 any를 제외한 어떠한 타입의 변수에도 할..

💻웹(Web)/React 2024.09.04

[TypeScript]TypeScript의 개요 및 기초

📌TypeScript 개요 및 기초✨TypeScript 개요TypeScript란 어떤 언어인가?TypeScript란 JavaScript를 더 안정적으로 사용할 수 있도록 Type이라는 안전장치를 추가한 확장판 JavaScript라고 할 수 있다.※참고: tsconfig.js → TypeScript의 컴파일러 옵션 파일이다.※참고: tsconfig.js → TypeScript의 컴파일러 옵션 파일이다.  ✨TypeScript의 원시타입: number, string, boolean, null, undefinedTypeScript의 원시타입인 Type number, string, boolean, null, undefined에 대해 TypeScript를 사용하는 방법은 다음과 같다.// type 주석 또는 t..

💻웹(Web)/React 2024.09.03

[알고리즘]백준 4991: 로봇 청소기

해결방법최단 경로를 구해야하므로 BFS를 사용한다.이때, visited를 3차원으로 만들어야 한다. 더러운 칸을 방문하는 순서를 고려해야 하기 때문이다. → visited배열을 3차원으로 관리해야한다. → 비트마스킹을 사용해야 한다.그래프를 모두 순회했음에도 답을 구하지 못한 경우는 방문할 수 없는 더러운 칸이 존재하는 것이므로 -1를 출력한다.모두 방문: curD==((1방문 처리: curD | (1 코드import java.util.*;import java.io.*;// 396ms// BFS + 비트마스킹 + dppublic class Main_4991_G1_로봇청소기_BFS비트마스킹 { static int h,w; // w: 방의 가로크기, h: 방의 세로 크기 static char[][..

알고리즘/백준 2024.08.24

[알고리즘]백준 6087: 레이저 통신

해결방법3차원 visited 배열이 문제 풀이의 핵심이라고 생각한다.visited[r][c][i]는 (r, c) 위치에 도달했을 때, 방향 i(상, 하, 좌, 우 중 하나)로 이동한 경우에 사용된 거울의 수이다. 이때, visited가 3차원이어야 하는 이유는 같은 (r,c)라도 레이저가 상,하,좌,우 어느쪽에서 들어왔는지에 따라 다음 위치로 이동할 때 필요한 거울의 수가 달라질 수 있기 때문이다.따라서 BFS + 3차원 방문처리를 통해 풀었고, O(W*H)로 풀 수 있다. 코드import java.util.*;import java.io.*;public class Main_6087_G3_레이저통신 { static int H,W; static char[][] map; static List point; st..

알고리즘/백준 2024.08.24

[알고리즘]백준 9935: 문자열 폭발

해결 방법먼저, 전체 문자열에서 폭발 문자열을 찾고 다시 문자열을 이어붙여 탐색하는 풀이가 떠오른다. 최악의 경우 전체 문자열의 길이가 N, 폭발 문자열의 길이가 1d일때, N*(N-1)(N-2)…*1의 연산이 필요하다. 즉, O(N^2)이 되어 시간초과가 발생할 것이다. 그래서 스택을 사용해서 O(N)으로 문제를 해결해야 한다. 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Stri..

카테고리 없음 2024.08.18

[알고리즘]백준 2206: 로봇 조종하기

해결 방법완전 탐색으로 접근하면 시간 초과가 발생한다. 한 지점에서 3방향으로 이동할 수 있고, 지점이 NM개 있으므로 O(3^(NM))의 시간복잡도가 소요되기 때문이다.첫 번째 행의 경우 오직 왼 → 오 방향만 가능하므로 따로 계산해주고 두 번째 행부터는 왼 → 오 / 오 → 왼을 비교해주어야 한다. 즉, 이전 단계의 최적 결과를 바탕으로 다음 단계에서의 최적 결과를 구해야하므로 DP로 접근한다고 볼 수 있다. 따라서 O(N*M)의 시간복잡도로 해결할 수 있다. 코드import java.util.*;import java.io.*;public class Main { static int MIN_VAL = -987654321; static int N,M; // (1≤N, M≤1,000) st..

알고리즘/백준 2024.08.18

[알고리즘]백준 1976: 여행 가자

해결방법서로소 집합을 통해 여행 계획인 도시들의 대표자가 모두 같으면 “YES”, 하나라도 다르다면 “NO”를 출력한다.서로소 집합시에 경로 압축 + 랭크 기반 유니온을 사용하면 find 및 union시 거의 상수시간이 소요되므로 O(N+M)의 시간복잡도로 해결할 수 있다. 코드import java.util.*;import java.io.*;// 160ms, Disjoint Setpublic class Main_1976_G4_여행가자_서로소집합 { static int N; // N: 도시의 수 static int M; // M: 여행 계획에 속한 도시들의 수 static int[][] graph; static int[] plan; static int[] parents; s..

알고리즘/백준 2024.08.16
728x90