"꾸준하고 완벽한 한 걸음"

전체 글 849

[수제비 2025 정보처리기사 필기] I. 소프트웨어 설계 - 1. 요구사항 확인 정리노트 : 01. 현행 시스템 분석

1️⃣ 플랫폼 기능 분석 ⭐⭐플랫폼💡플랫폼이란?애플리케이션 구동에 필요한 소프트웨어 환경동일 플랫폼 내에서는 상호 호환이 가능하도록 만들어진 결합체ex: 안드로이드 마켓, 페이스북, 인스타그램성능 특성 측정 항목경과 시간 : 작업을 의뢰 ~ 처리 완료까지 걸린 시간사용률 : 작업 의뢰 간 자원 사용률응답시간 : 요청을 전달한 시간부터 응답(데이터가)이 도착할 때까지 걸린 시간가용성 : 정상적으로 사용 가능한 정도2️⃣ 운영체제 분석 ⭐💡운영제체란?하드웨어 및 소프트웨어 자원을 효율적으로 관리하며 공통된 기능을 제공하는 소프트웨어ex: 윈도우, 유닉스, 리눅스운영체제 현행 시스템 분석시 품질 측면과 지원 측면을 고려해야 한다.운영체제 분석품질측면신뢰도성능지원측면기술 지원주변 기기구축 비용3️⃣ 네트워크..

CS 2025.02.08

[Java] Java에서의 Thread와 Thread Pool

목차스레드(Thread)란?단일 / 멀티 스레드 작업 예시스레드 풀(Thread Pool)과 사용 예시정리예제 코드이 글에서는 Java에서의 스레드(Thread)와 스레드 풀(Thread Pool)의 개념을 이해하고, 이를 활용하여 프로그램의 성능을 최적화하는 방법을 알아봅니다.또한, 스레드를 무분별하게 생성 및 사용 시 성능 저하로 이어지며 이를 해결하고자 스레드 풀(Thread Pool)을 사용하여 스레드를 효율적으로 관리하는 방법을 소개합니다.1️⃣ 스레드(Thread)란?스레드는 프로그램 내에서 실행되는 하나의 작업 단위✅ 스레드의 특징CPU의 기본 실행 단위 (프로세스 안에서 개별적으로 실행됨)각 스레드는 독립 실행 (하나의 스레드가 멈춰도 다른 스레드는 계속 실행됨)멀티 스레드를 사용하면 프로..

[백준 06118] 숨박꼭질 [Java]

문제https://www.acmicpc.net/problem/6118  풀이양방향 그래프의 1번 정점으로부터의 최대 깊이를 가지는 정점의 번호와 깊이, 동일한 최대 깊이를 가지는 정점의 수를 구하는 문제다.양방향 그래프부터 구성하자.import java.io.*;import java.util.*;public class Main { static List> graph = new ArrayList(); static int N; static int[] depth; public static void main(String[] args) throws IOException { // Init BufferedReader br = new BufferedReader(new Inp..

[백준 01325] 효율적인 해킹 [Java]

문제https://www.acmicpc.net/problem/1325  풀이단방향 그래프가 주어질 때, 가장 많은 정점을 방문할 수 있는 시작 정점을 찾는 문제다.A가 B를 신뢰할 때 B가 해킹 당하면 A도 해킹 당한다. 신뢰 관계에 대한 단방향 그래프를 구성하자.import java.io.*;import java.util.*;public class Main { static List> graph = new ArrayList(); static int N; static int[] cnt public static void main(String[] args) throws IOException { // Init BufferedReader br = new Buffere..

[백준 01477] 휴게소 세우기 [Java]

문제https://www.acmicpc.net/problem/1477 풀이구간 1 ~ (L - 1)에 N개의 휴게소가 위치 A[i]에 존재하고, M개의 휴게소를 추가로 지었을 때, 휴게소가 없는 구간의 길이의 최댓값이 최소가 되도록 해야 한다.문제의 설명에서 알 수 있듯.M개의 휴게소를 전부 설치 가능한 경우에 대해휴게소가 없는 구간의 길이의 최댓값이 최소가 되어야 한다.휴게소가 없는 구간의 길이를 탐색 범위로 잡고, 이분 탐색을 하면 된다.배열 A의 앞 뒤에 경계 값을 붙여주어 계산을 쉽게 해보자.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException..

[백준 14921] 용액 합성하기 [Java]

문제https://www.acmicpc.net/problem/14921 풀이N개의 수 중 두 수의 합을 0에 최대한 가깝게 만드는 문제다.우선, A를 오름차순으로 정렬해 문제를 단순화하자.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { // Init BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Input final int N = Integer.parseInt(br.readLine()); i..

개발자 유미 - 스프링 시큐리티 1 : 실습 목표 및 간단한 동작 원리

https://www.youtube.com/watch?v=y0PXQgrkb90&list=PLJkjrxxiBSFCKD9TRKDYn7IE96K2u3C3U&index=1  ⛳ 목표Spring Security를 활용한 인증/인가 구현MySQL을 활용한 회원 정보 저장(영속성)구현 기능인증 : 로그인 기능 구현인가 : 경로별 접근 권한 설정회원가입 : 회원 정보 저장 시큐리티 동작 원리Client의 요청 발생Servlet Container가 요청을 받고 여러 개의 Filter를 거쳐 컨트롤러에 도달Spring Security를 활성화하면 Filter에서 요청을 가로챔Filter에서 인증 인가 확인 후 최종적으로 접근 허용 실습 버전Spring Boot 3.1.5Security 6.1.5Spring Data JPA..

[Notion] 데이터베이스의 모든 최하위 항목 수를 세는 방법(for 노션으로 블로그 만들기)

오늘은 Notion의 데이터베이스 내 모든 최하위 항목 수를 세는 기능을 만들어 보겠습니다. 최하위 항목이란?데이터베이스에서 하위 항목을 가지지 않는 페이지를 의미합니다. 즉 다음 사진과 같이 계층형 구조에서 더 이상 등록된 하위 항목이 없는 페이지를 의미합니다.위 데이터베이스에 존재하는 전체 문서의 수는 총 6개입니다.이 중 하위 항목이 없는 최하위 항목은 총 3개(문서5, 문서3, 문서6)입니다. 이제 ‘수식’과 ‘롤업’을 양방향 참조로 구성해 모든 최하위 항목 수를 계산하는 방법에 소개하겠습니다.empty()로 최하위 항목 표시하기먼저 해당 문서가 최하위 항목인지 파악하기 위한 수식부터 작성해보겠습니다.하위 항목 수라는 이름의 수식 속성을 추가해주고 다음 수식을 입력합니다.if(empty(prop(..

Dev 2025.02.05

[백준 02565] 전깃줄 [Java]

문제https://www.acmicpc.net/problem/2565풀이유명한 LIS 문제다.우선, 전깃줄의 위치 정보를 A 또는 B를 기준으로 정렬하자.A를 기준으로 정렬해보겠다.A에서 B로 가는 전깃줄이 교차하지 않도록 최소한의 전깃줄만 제거해야 한다.교차하지 않는 전깃줄들이 최대가 되기 위해서는 A에서 B로 향하는 전깃줄들이 최대한 촘촘히 위치가 증가해야 한다.즉 B의 LIS가 교차하지 않는 전깃줄의 수와 동일하다.문제에서 요구하는 정답은 제거해야 하는 전깃줄의 수 이므로 N에서 B의 LIS를 뺀 값을 출력하자.소스코드보기

[백준 11000] 강의실 배정 [Java]

문제https://www.acmicpc.net/problem/11000풀이강의실을 최소로 사용해서 모든 강의를 끝내야 한다.강의가 끝나는 대로 다음 강의를 바로 진행할 수 있지만, 강의가 끝나지 않았는데 시작하는 강의가 있다면 강의실이 필요하다.priority queue를 사용해 쉽게 해결할 수 있다.우선, 시작 시간을 기준으로 정렬해주자.다음으로 강의 종료시간을 우선순위 큐에 넣어준다.만약 다음 강의의 시작시간이 가장 빨리 끝나는 강의의 종료시간 이후라면, 가장 빨리 끝나는 강의를 우선순위 큐에서 제거해주면 된다.그렇지 않는 경우라면 계속 우선순위 큐에 넣어주고 마지막에 전체 크기를 출력해주자.소스코드보기

[프로그래머스] 등굣길 [Java]

문제https://school.programmers.co.kr/learn/courses/30/lessons/42898풀이MN크기의 보드에 장애물이 주어지고, (1, 1)에서 (M, N)까지 가는 최단 경로의 수를 1e9 + 7로 나눈 나머지를 출력하는 문제다.보통 좌표가 NM으로 주어지지만 여기서는 MN이다. puddles가 가지는 좌표또한 MN임을 유의하자.puddles에는 BLOCK표시를 해주자.( 0, 1 ) 또는 ( 1, 0 )에 1을 기입해 (1, 1)이 1을 가질 수 있도록 해주자.dp[i][j] : ( i, j )까지 오는 최단 경로의 수이후에는 모든 경로를 탐색하며 장애물이 없는 칸이라면 dp[i][j] = dp[i - 1][j] + dp[i][j - 1]을 통해 최단 경로의 수를 합쳐주자..

PS 2025.02.01