본문 바로가기

IT

(84)
데이터베이스와 아키텍쳐 구성 데이터베이스와 아키텍쳐 구성 DB 서버의 다중화 - 클러스터링 클러스터링이 어려운 컴포넌트로 인식 데이터를 보존하는 '영속 계층' 이기 때문 '데이터의 정합성이 중요하기 때문' 가장 기본적인 다중화 DB 서버 N, 저장소 1 Active-Active : 클러스터를 구성하는 컴포넌트를 동시에 가동 Active-Standby : 클러스터를 구성하는 컴포넌트 중 실제 가동하는 것은 Active, 남은 것은 대기하고 있는다. Active-Active 구성의 장단점 시스템이 다운되어 있는 시간이 짧다 복수의 DB 서버가 동시에 작동하고 있어서 한 대가 다운되어 동작 불능이 되어도 남은 서버가 처리를 계속하기 떄문에 시스템 전체가 정지하는 것을 방지할 수 있음 성능이 좋다 동시에 가동하..
2020년 한 해를 되돌아보며... 0. TL;DR 이번 한 해는 나는 큰 변화가 없었지만, 외부 환경은 코로나라는 이슈로 떠들썩했던 한 해였다. 조금은 안일했던 한 해였던 것 같다. 오히려 내가 더 노력했어야 했고, 내면을 더 채워야 했던 한 해였던 것 같다. 내년에는 긴장할 수 있는 해로 거듭나 보자 1. 외부적 환경 1.1. 회사 큰 변화는 없었다. 이 말이 긍정적일 수도 있고 부정적일 수도 있는 말인 것 같다. 한마디로 파도가 없었던 한 해였다. 긍정적인 측면에서 본다면 회사에서 1년을 조용하게 보냈고, 다른 사람들 하는것만큼 공부하고 놀고 일하고 먹고 자고 했다는 뜻일 수 있다. 그렇지만 이 말을 뒤집어 본다면 조금은 경각심을 가지게 된다. 조용하게 1년을 보냈다는 말은 손가락을 튕기며 떠올릴 만한 성과는 없었다는 말이고, 다른 ..
구글 한국 공휴일 캘린더 url https://calendar.google.com/calendar/embed?src=ko.south_korea%23holiday%40group.v.calendar.google.com&ctz=Asia%2FSeoul 대한민국의 휴일 calendar.google.com https://p03-calendars.icloud.com/holidays/kr_ko.ics
DispatcherServlet 기본 동작 1. DispatcherServlet 기본 동작 get http://localhost:8080/app/hello DispatcherServlet.java doService @Override protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception { logRequest(request); ... doDispatch 로 진입 멀티파트 요청(파일 업로드) 인지 확인 핸들러를 찾아오는 부분 : 해당 요청을 처리하는 핸들러를 찾아오는 부분 (대부분 전략 패턴을 통해 가지고 옴) DispatcherServlet이 들고 있는 여러개의 핸들러 맵핑중 RequestMappingHandlerMappin..
Java Garbage Collection Java Garbage Collection NAVER D2 1. 가비지 컬렉션 과정 - Generational Garbage Collection 1.1. 'stop-the-world' GC를 실행하기 위해 JV 이 어플리케이션 실행을 멈추는 것 GC를 수행하는 쓰레드를 제외한 모든 쓰레드는 작업을 멈춤 GC튜닝이란 stop-the-world 를 줄이는 것이다. 1.2. 명시적 해제 명시적으로 해제하려고 null을 할당하거나 System.gc()를 호출하는 경우도 있음 → System.gc()는 성능에 매우 큰 영향을 끼친다.(아마도 gc를 하면 stw 가 발생하여서 그런 것 같다.) 1.3. 두 가지 가설에 기반한 가비지 컬렉션 대부분의 객체는 금방 접근 불가능 상태가 된다. 왜??? 왜 이런 가설이? ..
Java HashMap은 어떻게 동작하는가? Java HashMap은 어떻게 동작하는가?(NAVER D2) NAVER D2 해시맵과 테이블은 기능은 동일하다 다만 보조해시 함수를 사용하는 해시맵이 충돌이 덜 발생할 수 있어 상대적으로 성능상 이슈가 있다. 해시 테이블은 거의 변화가 없지만 해시 맵은 버전을 거치면서 변화가 많다 어떤 변화? // 해시맵의 선언부 public class java/util/HashMap extends java/util/AbstractMap implements java/util/Map java/lang/Cloneable java/io/Serializable { // 해시 테이블의 선언부 public class java/util/Hashtable extends java/util/Dictionary implements jav..
[스터디] 젠킨스 스터디를 마치며... 초보를 위한 젠킨스 2 활용 가이드 2/e 국내도서 저자 : 니킬 파타니아(Nikhil Pathania) / 이상욱 역 출판 : 에이콘출판사 2018.10.15 상세보기 https://github.com/bakery-blueprint/oven-jenkins bakery-blueprint/oven-jenkins build and grow. Contribute to bakery-blueprint/oven-jenkins development by creating an account on GitHub. github.com 우리 회사는 인프라에 대한 기반 사항을 대부분 제공해준다. 서버, 네트워크 등등 하지만 '떠먹여 주는 것'도 못하고 있다는 생각이 강하게 들었다. 그래서 젠킨스 공부를 시작하게 되었다. 기본적..
vue-cli global 설치후 command not found 환경 : windows 10 terminal : git bash npm install vue-cli -global 명령어를 통해 설치후 vue init webpack-simple 명령어를 통해 웹백 프로젝트 생성을 하다 vue command not found 에러가 발생했다. 자세히 보면 C:\Users\{username}\AppData\Roaming\npm\node_modules\vue-cli\bin\vue 영역에 설치되는 걸 볼 수 있다. 해당영역에 들어가보면 이렇게 vue 파일이 존재한다. 해당 영역(C:\Users\{username}\AppData\Roaming\npm\node_modules\vue-cli\bin)을 환경변수 path 에 등록시키면 잘 동작한다.
[Kotlin] 함수 정의와 호출 함수 정의와 호출 3장에서 다루는 내용 컬렌션, 문자열, 정규식을 다루기 위한 함수 이름 붙인 인자, 디폴트 파라미터 값, 중위 호출 문법 사용 확장 함수와 확장 프로퍼티를 사용해 자바 라이브러리 적용 최상위 및 로컬 함수와 프로퍼티를 사용해 코드 구조화 3.1. 코틀린에서 컬렉션 만들기 숫자로 이루어진 집합 val set = hashSetOf(1, 7, 53) 리스트와 맵 val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 여기서 to는 언어가 제공하는 특별한 키워드가 아니라 일반 '함수' 라는 점에 유의하자 위에서 만든 객체의 클래스 >>> println(set.javaCla..
[레거시 코드 활용 전략] CH7 코드 하나 바꾸는 데 왜 이리 오래 걸리지? 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ 2020/02/10 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 2020/02/15 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 2 ch 7 - 코드 ..