분류 전체보기

Spring

비동기 동기 블로킹, 논블로킹

동기 동기 작업은 하나의 작업이 완료될 때까지 다른 작업을 대기하는 방식입니다. 즉, 현재 작업이 끝나야만 다음 작업이 시작됩니다. 작업이 순차적으로 실행되며, 작업 간에 의존성이 있는 경우에 주로 사용됩니다. 데이터베이스 트랜잭션, 파일 읽기/쓰기 작업, 연속적인 계산 작업 등등에 사용합니다. public class Main { public static void main(String[] args) throws InterruptedException { System.out.println("작업 1 시작"); task1(); System.out.println("작업 2 시작"); } public static void task1() throws Interr..

DB

[MySQL]InnoDB VS MyISAM

InnoDB InnoDB 및 BDB 스토리지 엔진은 트랜젝션에 안전한 테이블을 제공하는 트랜잭션-세이프 스토리지 엔진이다. InnoDB는 모든 5.0 바이너리 배포판에 디폴트로 포함되어 있다. MyISAM과 비슷하지만 ORACLE처럼 많은 기능을 지원한다. commit, rollback, 장애복구, row-level locking, 외래키 등 다수의 사용자 동시접속과 퍼포먼스가 증가하여 대용량 데이터를 처리할 때 최대의 퍼포먼스를 내도록 설계되었습니다. CPU 효율은 어느 디스크 기반의 데이터 베이스와 비교해도 우수하고, 자체적으로 메인 메모리 안에 데이터 캐싱과 인덱싱을 위한 버퍼 풀(pool)을 관리한다. MyISAM 과 다른 점으로 테이블과 인덱스를 테이블 스페이스에 저장을 하고 테이블 스페이스는 ..

DB

MySQL 엔진 아키텍처

MySQL 서버는 크게 머리 역할을 담당하는 MySQL 엔진과 손발 역할을 담당하는 스토리지 엔진으로 구성된다. 기본으로 제공되는 스토리지 엔진에는 InnoDB와 MyISAM 등이 있다. MySQL의 구조 및 MySQL 엔진MySQL 엔진은 다음과 같은 구성요소가 중심을 이룬다.접속 및 쿼리 요청을 처리하는 커넥션 핸들러SQL 파서전처리기옵티마이저- 옵티마이저가 중심 스토리지 엔진 실제 데이터의 저장과 조회는 스토리지 엔진이 담당하고 있다.특징MySQL 서버는 하나의 MySQL 엔진을 사용하지만, 여러 스토리지 엔진을 동시에 사용할 수 있다.테이블별로 사용할 스토리지 엔진을 지정이 가능하다.INSERT, UPDATE, DELETE, SELECT 등의 작업은 InnoDB 스토리지 엔진이 처리CREATE T..

DB

MySQL 사용자 및 권한

MySQL에서 사용자 계정은 데이터베이스 시스템내에서 보안과 접근 제어를 관리하는데 필수적인 역할을 합니다.인증(Authentication): 사용자 계정은 데이터베이스에 접근하려는 개인이나 애플리케이션 신원을 확인하는데 사용됩니다. 무단 접근으로부터 시스템을 보호하는 데 중요한 역할을 합니다.권한 부여(Authorization): 사용자 계정을 통해 특정 데이터베이스, 테이블에 대한 접근 권한을 세밀하게 제어할 수 있습니다. 이를 통해 정보의 무결성과 보안을 유지할 수 있습니다.계정 관리(Account Management): MySQL에서는 사용자 계정을 생성, 수정, 삭제하는 등의 관리 작업을 할 수 있습니다. 이를 통해 유연한 관리가 가능해집니다.감사 및 로깅(Auditing and Logging)..

DB

MySQL 변수들

MySQL 설정 파일- my.cnf / my.ini 파일에 여러개의 설정 그룹을 담을 수 있다.MySQL 시스템 변수의 특징시스템 변수가 가지는 5가지 속성이 존재하는데 의미는 다음과 같다.Cmd-LineMySQL 서버의 명령행 인자로 설정될 수 있는지 여부를 나타낸다.이 값이 YES이면 명령행 인자로 이 시스템 변수의 값을 변경하는 것이 가능하다는 의미다.Option fileMySQL의 설정파일인 my.cnf로 제어할 수 있는지 여부를 나타낸다.옵션 파일이나 설정 파일 또는 컨피규레이션 파일 등은 전부 my.cnf 파일을 지칭하는 것으로 같은 의미로 사용된다.System Var시스템 변수인지 아닌지를 나타낸다. MySQL 서버의 설정 파일을 작성할 때 각 변수명에 사용된 하이픈(-)이나 언더스코어(_)..

AWS

AWS Amazon Simple Email Service(SES)

Amazon Simple Email Service(SES) 란? Amazon Simple Email Service(Amazon SES)를 사용하면 Simple Mail Transfer Protocol(SMTP) 이메일 서버를 온프레미스에 유지하지 않고도 Amazon SES API 또는 SMTP 인터페이스를 사용하여 고객과 안전하게 소통할 수 있습니다. 실제로 Spring 에서 email 을 보내기 위해 라이브러리를 사용했던적이 있습니다. ( 네이버 이메일로 작업했습니다 ) implementation 'org.springframework.boot:spring-boot-starter-mail' 하지만 AWS 에서도 이메일 서버 API 지원을 해주는것이 있고, 가격도 저렴하여 써보기로 하였습니다. - 위와 같..

Git | GitHub

GitHubAction Self Hosted runner

GitHub Action Self Hosted Runner 란? 자체 실행기를 호스팅하고 GitHub Action 워크 플로에서 작업을 실행하는 데 사용되는 환경을 사용자 지정할수 있습니다. Github Action 을 써봤지만, Github 에서 관리하는 서버에서 빌드하고 빌드된 파일을 AWS CodeDeploy 나 SCP 명령어를 통해 AWS EC2 서버에 CI/CD 구축을 계속 해봤습니다. 하지만 이번에 새롭게 시작한 프로젝트에서 고정IP 아니면 허용을 못해준다 라는 요구사항이 있어, 다른것들을 찾아보다가 Github Action 에서 Self Hosted Runner 를 지원해주는것을 알고 사용하게 된 방법입니다. 보통은 Github 에서 지원해주는 서버에 코드를 올려 yml 로 작성한 코드를 실..

알고리즘

[백준] 단어 공부 / 1157번

문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 복사 Mississipi 예제 출력 1 복사 ? 예제 입력 2 복사 zZa 예제 출력 2 복사 Z 예제 입력 3 복사 z 예제 출력 3 복사 Z 예제 입력 4 복사 baaa 예제 출력 4 복사 A import java.io.BufferedReader; import..

알고리즘

[백준] 단어의 개수 / 1152번

문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 1 복사 The Curious Case of Benjamin Button 예제 출력 1 복사 6 예제 입력 2 복사 The first character is a blank 예제 출력 2 복사 6 예제 입력 3 복사 ..

알고리즘

[백준] A/B / 1008번

문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. 예제 입력 1 복사 1 3 예제 출력 1 복사 0.33333333333333333333333333333333 10-9 이하의 오차를 허용한다는 말은 꼭 소수 9번째 자리까지만 출력하라는 뜻이 아니다. 예제 입력 2 복사 4 5 예제 출력 2 복사 0.8 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.A..

Domae_
'분류 전체보기' 카테고리의 글 목록