개발 61

Java] Multi Thread 환경에서 Singleton 패턴을 Thread Safe하게 사용하기

Multi Thread 환경에서 Singleton 패턴을 Thread Safe하게 사용하기 해당 글과 관련된 Singleton Pattern을 테스트 해볼 수 있는 git주소를 첨부합니다 🍗 https://github.com/SimYeJu/HelloSingletonPattern/tree/main/src ❓Singleton이란? 하나의 인스턴스만 존재해야 할 경우에 Singleton 패턴을 사용한다. 예를 들어, DBCP(DataBase Connection Pool)나 로그를 기록하는 객체 등 공통된 객체를 여러 다른 클래스에서 사용해야 할 때, 하나의 인스턴스만 생성할 수 있게끔 만드는 것이 좋다. 그 이유는 같은 역할을 하는 객체가 여러개 만들어지지 않는게 메모리 사용면에서 좋기 때문이다. Single..

개발/Java 2021.05.18

Java] ExecutorService란?

❓ ExecutorService란? 병렬 작업 시 여러 개의 작업을 효율적으로 처리하기 위해 제공되는 JAVA 라이브러리이다. ❔ ExecutorService가 없었다면? 각기 다른 Thread를 생성해서 작업을 처리하고, 처리가 완료되면 해당 Thread를 제거하는 작업을 손수 진행해야하는 것을 ExecutorService 클래스를 이용하면 쉽게 처리가능하다. 🎉 ExecutorService ExecutorService에 Task만 지정해주면 친절하게 알아서 ThreadPool을 이용해서 Task를 실행하고 관리한다. 🤹 Task는 뭐로 관리가 되나? Queue로 관리된다. ThreadPool에 있는 Thread수보다 Task가 많으면, 미실행된 Task는 Queue에 저장되고, 실행을 마친 Threa..

개발/Java 2021.04.12

코딩테스트] 코딩테스트가 처음이라면? 혹은 오랜만이라면? 간단 로드맵

코딩테스트 공부를 하려고 할 때, 기본적인 정렬 기본적으로 아래의 것들은 구현할 줄 알아야 한다고 생각한다. 일차원 배열 순서대로 print / 역순으로 print 이차원 배열 순서대로 print / 역순으로 print int형 일차원 배열 오름차순 정렬 / 내림차순 정렬 string형 일차원 배열 오름차순 정렬 / 내림차순 정렬 리스트 오름차순 / 내림차순 정렬 심화 이 후에 구현할 줄 알아야 하는 알고리즘들은 아래와 같다고 생각한다. 조합 순열 BFS DFS 위 알고리즘들을 사용한 '완전탐색' 문제들도 풀어보기를 권장한다. 완전탐색이 생각보다 구현에 까다로운 문제들이 많다고 생각한다. 그래프 이 후에 공부해야 할 것들은 기타 그래프 문제들이다. 다익스트라 최소 신장 트리 (MST, 크루..

MSSQL] UNIQUEIDENTIFIER

❓ 궁금증 MySQL 데이터베이스를 MSSQL로 마이그레이션(이주)하는 과정이 있었다. MySQL에서 타입은 int이고 default값은 auto increment로 사용되던 sequence number값의 타입이 uniqueidentifier로 변하고, default값은 newsequentialid로 변했다. 이에 두 RDBMS에서 어떤 차이가 있는지 궁금해서 알아보게 되었다. MSSQL의 uniqueidentifier 타입 MSSQL 데이터 타입의 한 종류이다. 16바이트의 GUID (Global Unique Identifier)이다. 해당 타입의 컬럼이나 로컬 변수는 아래와 같이 초기화가 가능하다. NEWID 또는 NEWSEQUENTIALID를 사용하여 초기화할 수 있다. xxxxxxxx-xxxx-..

개발/기타 2021.02.16

JavaScript] 자바스크립트 뿌시기 (함수의 다양한 형태)

🎉 함수의 다양한 형태 콜백 함수 코드를 통해 명시적으로 호출하는 함수가 아니라, 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 호출되는 함수이다. 즉시 실행 함수 (immediate functions) (function (location){ console.log('지금 위치는? => ' + location); })('경기도'); 함수 정의와 동시에 실행하는 함수이다. 위의 코드처럼 즉시 실행 함수를 작성할 수 있으며, 특징은 최초 한 번의 실행만을 필요로하는 초기화 코드 부분에 적당하다는 점이다. 즉시 실행 함수 내부에 변수들은 함수 외부에서 접근할 수 없다. 내부 함수 (inner function) function parent(){ var a = 100; var b =..

개발/JavaScript 2021.02.02