Thread는 자원과 안정성 문제가 항상 따라다닌다. Thread가 많다면 대기 중인 상태가 되어, 메모리 사용량이 많아지면서 JVM 가비지 콜렉터에 영향을 주게 된다. 이러한 문제를 해결하기 위해 Thread Pool 관리가 필요하고, Java에서는 java.util.concurrent.* 패키지에서 Thread Pool을 제공하고 있다. ExecutorService 생성자 newFixedThreadPool : 지정된 숫자만큼 고정된 Thread를 유지한다. Thread가 작업이 종료되었으면 Thread 다시 생성하여 주어진 개수를 맞춘다. /** * Creates a thread pool that reuses a fixed number of threads * operating off a shared ..

Mac으로 문서작업을 하다 보면, Window에서 파일명이 자소 분리된다. 이에 관하여 빠르고 간단하게 Mac 한글파일명 자소 분리 해결법을 알아보자. 문제점 - 표준 정규화 인코딩 차이 Mac - NFD(조합형) Window - NFC(완성형) 1. convmv 설치 brew install convmv # 사용법 convmv -f utf8 -t utf8 --nfc --notest convmv 설치 후 위 명령어로 지정된 파일만 해결이 된다. 파인터에서 우클릭 형태로 쉽고 빠르게 작업하실 분은 아래 설명하는 Automator를 생성하자. 2. Automator 생성 Automator 실행 -> 새로운 문서 -> 빠른 동작 -> 왼쪽 검색창("셸") -> 오른쪽으로 드래그 -> 빨간색 영역 수정 # App..
쿼리 실행 계획을 얻기 위해서 MYSQL에서는 'EXPLAIN' 키워드를 통해 실행 계획이 무언인지 알고 싶을 때 사용하는 명령어이다. EXPLAIN을 활용하여 기존의 쿼리를 튜닝, 성능 분석, 인덱스 전략 등과 같이 성능 최적화를 진행할 때 사용한다. 사용법 EXPLAIN [EXTENDED] SELECT ... FROM ... WHERE ... 각 항목별 의미 id : 실행 계획 단위 번호를 의미하며 원 구문의 순서에 따라 각 select 구문들에 순차적으로 번호가 부여된다. 조인만 수행하는 쿼리는 항상 1이다. select_type : select 문의 유형 - simple : 단순 select (union, subquery 아닌 select문) - primary : 가장 바깥에 있는 select문(..
MySQL을 사용하다 보면 Too many connections 에러가 발생하면서 접속이 불가할 때가 있다. DB에 설정된 최대 허용 커넥션 개수를 초과해서 나타난 오류이다. 1. DB Connection(상태) SHOW PROCESSLIST; 2. DB Connection(최대 접속 가능한 수) SHOW VARIABLES LIKE '%max_connect%'; 3. DB Connection(현재 접속 수) SHOW STATUS LIKE 'Threads_connected'; 4. DB Connection(동작중인 Connection 수) SHOW STATUS LIKE 'Threads_running';
DB 테이블 생성 시 NOT NULL, DEFAULT를 많이 접하게 된다. SQL 제약조건이 비슷하지만 각각 왜 존재하는지, NOT NULL과 DEFAULT를 동시에 사용해야 하는 건지에 대한 의문에서 시작되었다. NOT NULL - 해당 컬럼에 NULL 값이 허용되지 않는다. DEFAULT - 명시적으로 값을 지정하지 않으면, 지정된 값으로 설정된다. 아래 예시를 통해 이해를 돕고자 한다. DDL에 NOT NULL 제약 조건이 없다고 가정해보자. 테이블 - TBL 컬럼 - AA, BB, CC ALTER TABLE TBL ADD COLUMN CC VARCHAR(20) DEFAULT 'Default-Value'; # 1. CC 컬럼 값을 지정하지 않음 -> 'Default-Value' INSERT INTO..
Primary Key로 잡혀있는 컬럼으로 같은 데이터를 INSERT 시도시 중복(Duplicate) 오류가 발생한다. 이럴때 3가지 방법으로 INSERT 하는 방법이 있다. 각각의 특성을 확인하고 상황에 맞게 적용하면된다. INSERT시 중복(Duplicate)이 오류발생시 처리방법 1. INSERT IGNORE INTO mysql> INSERT IGNORE INTO `user`(`email`, `name`) VALUES('ref@mail.com', '레퍼런스'); Query OK, 0 rows affected (0.00 sec) - 기존 데이터 유지 - 현재 데이터 무시 - 0 rows affected 2. REPLACE INTO mysql> REPLACE INTO `user`(`email`, `nam..

AWS MFA(Multi-Factor Authentication) AWS MFA는 사용자 계정 정보 외에 보안을 한층 더 강화할 수 있는 수단이다. 간단히 말하면 은행에서 보안 강화를 위해 OTP(One Time Password)를 사용하는 것과 동일하다. 이러한 보안 요소를 통해 AWS 계정 설정 및 리소스에 대한 보안을 높일 수 있어, 클라우드 보안에서 필수적 사항이다. 특히 루트 계정 일 경우에는 필수 적이며, 그 외 IAM 일반 계정에게도 권고하고 있는 사항이다. AWS MFA 권한 설정 루트 계정은 권한 지정이 필요없지만, IAM 계정은 MFA 관리에 대한 권한 설정이 필요하다. 아래와 같이 IAM 계정에 정책을 연결해도 권한 부여가 가능하다. https://docs.aws.amazon.com/..

[프로그래밍/AWS] - [AWS] AWS S3 파일 업로드 [AWS] AWS S3 파일 업로드 오늘 포스팅 내용은 AWS S3 파일 업로드에 대해 정리해보자. Bucket 생성 및 권한(정책) 수정 AWS 콘솔에서 S3 메뉴에서 버킷 생성을 하고 권한 탭에서 버킷 정책을 수정해야 한다. 버킷 정책은 정책 reference-m1.tistory.com 지난 포스팅에 AWS S3 업로드에 대해 알아보았다. 이번에는 추가적으로 S3 PreSignedURL에 대해 설명하고자 한다. AWS 환경을 구축하고 개발을 하면서 아래에 해당하는 경우에는 preSignedURL이 필수적이다. preSignedURL이 필요한 경우 S3 서버 블록 암호화 설정을 하였을 때 10MB 이상의 파일을 업로드, 다운로드(API Gat..

Mac에서의 Java 설치 및 여러 가지 Java버전을 관리하는 방법을 알아보자. Java 설치의 일반적인 방법은 직접 다운로드하는 방법이 있지만, Mac에서는 Brew를 통해 손쉽게 설치가 가능하다. Java 외의 모든 프로그램을 Brew로 설치하면 관리가 쉬워진다. https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 1. Java 설치 # Homebrew 설치 및 업데이트 brew update # adoptopenjdk/openjdk 추가 brew tap adoptopenjdk/openjdk # jdk 찾기 brew search jdk # 특정 버전 설치 brew install --cask..
1. AWS CLI(Command Line Interface) 설치 아래 사이트를 참조하여 OS별로 AWS CLI를 설치한다. https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html 최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface 설치 관리자의 아무 위치에서나 Cmd+L을 눌러 설치에 대한 디버그 로그를 볼 수 있습니다. 이렇게 하면 로그를 필터링하고 저장할 수 있는 로그 창이 열립니다. 로그 파일도 /var/log/install.log에 자 docs.aws.amazon.com 2. AWS 인증 AWS CLI가 설치가 완료되면 aws configure 명령어로 ..
- 개발환경
- Eclipse
- 프로그래머
- 리액트
- React
- 정렬 알고리즘
- 성능분석
- 오라클 내장 함수
- Collection
- 프로그래머스
- Linux 명령어
- javascript
- 제주도 3박4일 일정
- 오라클
- 경력관리
- 리눅스 명령어
- 자바
- 자바스크립트
- 리액트 16
- 소프트웨어공학
- 회고
- effective java
- 이직
- spring
- Tomcat
- Java
- SQL
- 제주도 여행
- sort algorithm
- Maven
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |