전체 글

I'm still working on it. We must be better.
문제 출처: https://www.acmicpc.net/problem/25305 1. 문제 2. 시도 // bj-25305 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.rea..
더보기 본 게시글은 정규식의 기본 규칙과 사용법에 대한 이해를 위한 글로, adjh54님의 개인 블로그 글을 참고했습니다. 정규표현식 (짧게는 정규식)은 문자열의 패턴을 확인하고, 일부 일치하는 정보를 추출하며, 문자열이 특정 패턴에 맞는지 확인할 수 있는 형식 언어입니다. 1. 정규표현식 패턴 (Regular Expression Pattern) 1.1 문자 클래스 (Character classes) - 문자와 숫자를 구분하는 것처럼 문자 종류를 구분하는 데 사용합니다. 정규식 패턴 설명 패턴 종류 예제 \\w 문자만 허용 (a-z, A-Z, 0-9, ...) String regExp = "^[\\w]*$"; \\W 문자가 아닌 경우에만 허용 ! (a-z, A-Z, 0-9, ...) String regE..
문제 출처: https://www.acmicpc.net/problem/1436 1. 문제 문제 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다. 종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는..
원인 분석 대용량 트래픽은 주로 평소 사용량을 넘는 사용자 로그인, DB 쿼리 요청 등 다양합니다. 만약 이를 처리하지 않고 방치한다면 서버 부하와 데이터베이스 부하 모두 증가하여 결국엔 서비스의 성능이 저하되고 서버 다운타임으로 인한 처리 지연 등의 문제가 발생할 수 있습니다. 대응책 1. 로드 밸런서와 오토 스케일링 그룹 로드 밸런서는 트래픽을 여러 서버로 분산시켜 서버 부하를 분담하는 중요한 도구로, 이를 통해 사용자 요청이 분산되어 특정 서버가 과부하되는 일을 방지할 수 있습니다. AWS의 Elastic Load Balancing (ELB)은 이러한 기능을 제공하여 서버 확장성을 높이고 더 많은 사용자 트래픽을 처리할 수 있도록 지원합니다. 오토 스케일링 그룹을 통해 서버 인스턴스의 수를 자동으로..
·CS/운영체제
더보기본 게시글은 프로세스와 쓰레드의 차이를 바탕으로 멀티 프로세스와 멀티 쓰레드의 차이 그리고 그 쓰임새에 대해 정리하기 위한 목적으로 작성된 글입니다. 프로세스와 스레드프로세스는 여러 응용 프로그램이 독립적으로 실행되는 것을 의미합니다. 예를 들어, 웹 브라우저를 실행하면 각 탭은 별도의 프로세스로 실행됩니다. 스레드는 프로세스 내에서 실행되는 여러 실행 흐름으로, 하나의 프로그램 내에서 여러 작업을 동시에 처리할 수 있게 합니다. 예를 들어, 웹 브라우저가 여러 탭에서 동시에 여러 작업을 처리할 때 쓰레드가 사용됩니다. 멀티 프로세스와 멀티 스레드멀티 프로세스는 여러 프로세스가 동시에 실행되는 것을 의미합니다. 서버에서 여러 클라이언트 요청을 동시에 처리할 때 각 클라이언트 요청을 별도의 프로세스로..
일반적으로 SpringBoot의 인증/인가 필터를 JWT에 기반하여 구현합니다. 하지만, 한번 발행된 JWT의 유효 시간을 자체적으로 만료시킬 방법이 없다는 보안 상의 취약점을 해결하기 위해 JWT와 함께 언급되는 것이 Refresh Token입니다.  Refresh Token을 구현하기 위한 참고한 모든 블로그들은 한결 같이 Redis를 통해 구현하는 것을 확인했습니다. 해당 게시글은 Redis의 특징을 통해 그 이유를 파악하고 그로 인해 얻을 수 있는 장점에 대한 내용으로 구성되었습니다.   Redis의 특징1. 속도와 성능Redis는 메모리 기반 데이터 저장소로, 빠른 속도와 높은 성능을 제공합니다.이는 Refresh Token 같은 인증 데이터를 빠르게 읽고 쓸 수 있어 애플리케이션의 응답 시간을..
·클라우드
더보기 해당 게시글은 AWS의 AWS Well-Architected 프레임워크의 여섯 가지 기반 원칙에 대한 이해를 함양하기 위한 글로, AWS와 스마일샤크의 공식 자료를 각각 참조하였습니다. 1) 운영 우수성 운영 우수성 원칙은 효과적인 개발 및 워크로드 실행을 지원하고, 작업에 대한 인사이트를 얻어 지원 프로세스 및 절차를 지속적으로 개선하여 비즈니스 가치를 제공할 수 있는 능력을 일컫습니다. 주요 주제로는 변경 자동화, 이벤트 대응 및 일상적 작업 관리를 위한 표준 정의가 포함됩니다. 2) 신뢰성 (안정성) 신뢰성 원칙에는 필요할 때 의도한 기능을 정확하고 일관되게 수행하는 워크로드의 기능을 포함하는데, 여기에는 전체 수명 주기에 걸쳐 워크로드를 운영 및 테스트할 수 있는 기능이 포함됩니다. 주요 ..
·클라우드
더보기 본 게시글은 AWS의 기반으로 정의되는 여섯 가지 개념의 일반적인 설계 원칙과 모범 사례 및 지침에 대한 글로, AWS의 공식 자료를 참조하였습니다. AWS (Amazon Web Service)는 아마존닷컴의 클라우드 컴퓨팅 사업부이자, 다른 웹 사이트나 클라이언트 측 응용 프로그램에 대한 온라인 서비스를 제공하고 있습니다. AWS Well-Architected 프레임워크는 그런 AWS가 그동안의 경험을 토대로 고객 및 파트너가 아키텍처를 평가할 수 있는 일관적인 모범 사례 및 아키텍처를 제공하여 AWS 모범 사례에 얼마나 잘 맞는지 평가할 수 있도록 만든 일종의 평가표입니다. 기존 다섯 가지 기반인 운영 우수성, 보안, 안정성, 성능 효율성, 비용 최적화에 최근 추가된 지속 가능성이 포함되어 총..
문제 출처: https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 1. 문제 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 2. 시도 가장 무난하게 for문을 2부터(1은 소인수분해 값이 될 수 없으므로) 입력인 N까지 반복하도록 코드를 작성했다. import java.io.*; public class Main { public static void main(Stri..
Java의 가장 큰 특징 중 하나는 어느 플랫폼, 어느 하드웨어, 어느 운영체제에 상관없이 컴파일된 코드(바이트코드)가 플랫폼 독립적이라는 점입니다. 이것이 가능한 것은 컴파일된 코드(바이트 코드)를 실행시켜주는 가상 컴퓨터 JVM(JAVA Virtual Machine) 덕분입니다. 1. 자바 실행 과정 JVM 동작 원리를 이해하기 위해선 먼저 Java 코드의 동작 원리를 파악해야 합니다. Java 코드 동작 원리 작성한 자바 소스 코드 파일(.java) 을 자바 컴파일러(javac)를 통해 바이트 코드(.class)로 컴파일합니다. 컴파일된 바이트 코드를 JVM의 클래스 로더에게 전달합니다. 클래스 로더는 동적 로딩을 통해 필요한 클래스들을 JVM의 메모리인 런타임 데이터 영역에 로딩합니다. 실행 엔진..
G+
IT 이모저모