시스템의 성능이 느릴 때 가장 먼저 해야 하는 작업은 병목 지점을 파악하는 것이다. 프로파일링 툴 VS APM 툴 구분 특징 프로파일링 툴 소스 레벨의 분석을 위한 툴이다.애플리케이션의 세부 응답 시간까지 분석할 수 있다.메모리 사용량을 객체나 클래스, 소소의 라인 단위까지 분석할 수 있다.가격이 APM 툴에 비해서 저렴하다.보통 사용자 수 기반으로 가격이 정해진다.자바 기반의 클라이언트 프로그램 분석을 할 수 있다. APM 툴 애플리케이션의 장애 상황에 대한 모니터링 및 문제점 진단이 주 목적이다.서버의 사용자 수나 리소스에 대한 모니터링을 할 수 있다.실시간 모니터링을 위한 툴이다.가격이 프로파일링 툴에 비해 비싸다.보통 CPU 수를 기반으로 가격이 정해진다.자바 기반의 클라이언트 프로그램 분석이 불..
J2EE 디자인 패턴에 대해 간단히 알아보자.위 그림은 사용자의 요청에 처리되는 순서로 생각하면서 위에서부터 아래로 보면 된다. 가장 윗부분은 프레젠테이션 티어이고, 중간 부분은 비즈니스 티어, 하단 부분은 인테그레이션 티어다. 위로 갈수록 화면에 가깝고, 아래로 갈수록 DB와 같은 저장소에 가깝다. Intercepting Filter 패턴요청 타입에 따라 다른 처리를 하기 위한 패턴이다.Front Controller 패턴요청 전후에 처리하기 위한 컨트롤러를 지정하는 패턴이다.View Helper 패턴프레젠테이션 로직과 상관 없는 비즈니스 로직을 헬퍼로 지정하는 패턴이다.Composite View 패턴최소 단위의 하위 컴포넌트를 분리하여 화면을 구성하는 패턴이다.Service to Worker 패턴Fro..
IT 전문서를 다시 접하게 되면서 처음 선정하여 구매한 책이다. 첫 번째 책으로 선택한 이유는 내용적인 측면도 있지만 가장 큰 이유는 가벼운 느낌으로 책에 대한 친밀감을 높여주기 위한 생각이었다. "소프트웨어 장인"이라는 제목만으로도 큰 매력을 느꼈지만 이미 유명한 책이였다. 첫 완독을 하고 다시 한번 정독을 하였다. 다시 한번 기억하고 싶었던 내용들이 많았기 때문이다. 이 책에서는 개발자로써 비즈니스적인 마인드를 깨는 것부터 시작된다. 개발자라는 개발만 하면 되는 걸까? 돌이켜보면 직장생활을 하면서 해가 가면 갈수록 개발자는 개발만 하면 안 된다는 것을 뒤늦게 깨달았다. 기술력은 여전히 개발자가 가져가야 할 기본 덕목이지만 경력이 쌓일수록 부수적인 걸 같이 동반하게 된다. 다른 나라에서의 경험한 저자의..
오버 엔진이어링지나친 기술 집착은 오버 엔지니어링으로 귀결된다는 의견이 있다. 그럴지도 모른다. 하지만 반대로 생각하면 기술에 대한 이해도가 낮으면 언더 엔지니어링이 될 수도 있다. 우리가 두려워해야 할 것은 오버 엔지니어링인가, 언더 엔지니어링인가.물론 가장 좋은 것은 상황에 맞는 적절한 엔지니어링을 택하는 것이고, 그게 최우선임은 당연하다. 그러나 적절한 엔지니어링을 택하는 것도 많이 알고 있을 때나 가능한 일이다. 고참 개발자고참 개발자에 대한 개념은 크게 바뀌지 않았다. 어떤 개발자가 고참인지의 여부는 그가 얼마나 많은 지식을 가졌느냐가 아니라 그 업계에 얼마나 오랫동안 몸담아 왔느냐로 판단되고 있다.같은 경험을 10년 동안 열 번 반복하는 것과, 10년 동안 매년 서로 다른 경험을 하는 것 사이..
Event Bubbling 자바스크립트에는 Event Bubbling이라는 개념이 있다. 이것은 한 자식 요소에서 이벤트가 발생했을 때 부모 요소에 이벤트를 전파하는 것을 의미하여 Event Bubbling이라고 말한다. 다음 예제 코드를 보자. HTML Click me to check JavaScript $('.parent').on('click', function() { ('#checkbox').prop('checked', false); }); $('.child').on('click', function() { $('#checkbox').prop('checked', true); }); .parent 클래스가 .child 클래스 버튼을 가지고 있으며 부모와 자식 요소에 같은 click 이벤트가 바인딩 되었..
아래 글은 Top 10 Mistakes Java Developers Make 번역본이며 일부 첨언을 하였다. 4. Hashtable VS HashMap Map 인터페이스에 HashMap, TreeMap, Hashtable, LinkedHashMap이 정의되어 있다. Hashtable은 알고리즘 규칙에 의한 자료구조 이름이다. 그러나 자바(Java)에서는 HashMap으로 정의되었다. Hashtable과 HashMap의 주요 차이점 중 하나는 Hashtable은 동기화(synchronized)가 된다는 것이다. HashMap : Hashtable로 구현되었으며, key 또는 value에 대한 정렬은 없다. TreeMap : red-black tree(이진트리의 특수한 형태) 구조를 기반으로 구현되었으며 키..
아래 글은 Top 10 Mistakes Java Developers Make 번역본이며 일부 첨언을 하였다. 1. Convert Array to ArrayList 개발을 하다 보면 배열을 ArrayList로 변환이 필요할 때가 있다. 대부분의 개발자분들이 아주 자연스럽게 아래와 같이 사용을 한다. java.util에는 Arrays 클래스가 존재하며 Array.asList는 배열을 리스트로 반환해 주기 때문이다. List list = Arrays.asList(arr); Arrays.asList 이 메소드는 손 쉽게 배열을 컬렉션 관련 유틸을 사용해 캐스팅하여 사용할수는 있지만 제약사항이 있다. Java API 문서를 참조하면 다음과 같은 설명이 있다. Returns a fixed-size list back..
HDFS(Apache Hadoop Distributed File System)Apache Hadoop은 분산 파일 시스템과 MapReduce 패러다임을 이용한 대용량 데이터를 분산 처리할 수 있는 오픈소스 프레임워크이다.원래 너치(루씬을 기반으로 하여만든 오픈 소스 검색 엔진)의 분산처리를 지원하기 위해 개발된 것으로, 아파치 루씬의 하부 프로젝트이다. 분산처리 시스템인 구글 파일 시스템을 대체할 수 있는 하둡 파일 시스템과 맵리듀스를 구현한 것이다. HDFS 특징1. 데이터 Recoverability- 시스템의 컴포넌트가 fail 하더라도 시스템을 통해 작업을 지속적으로 수행되어야 한다. failure로 인해 어떠한 데이터의 손실도 발생해서는 안된다.2. 컴포넌트 Recovery- 시스템의 컴포넌트가 ..
JavaScript 동치 비교 == , === 차이점 JavaScript에는 다른 언어와는 다르게 === 연산이 존재한다. 다른 언어들을 먼저 접하고 실무를 하게 된다면 자연스럽게 JavaScript에서도 == 연산을 대부분 먼저 사용하게 된다. 이런 이유로 대부분의 개발자 들이 무심코 == 연산으로 주로 비교 조건절을 사용하는 경우가 많다. 동치 비교 차이점을 파악해서 일치 연산자를 사용하도록 하자. == 동등 연산자(Equal Operator) 동등 연산자는 피연산자들이 서로 타입이 다르면 같은 타입으로 변환을 한다. 그다음 strict 비교를 적용한다. 두 피연사자가 둘 다 객체라면, 자바스크립트가 메모리의 같은 객체를 참조할 때 내부 내용을 비교하며, 메모리의 같은 객체를 가르킨다면 두 객체를 같..
빅데이터 프로젝트를 하게되면 항상 마주하게 되는 하둡(Hadoop)에 대한 이야기이다.빅데이터를 새롭게 구축 하는 일을 마주하게 되면 제일 먼저 큰 데이터를 저장 할 저장소와 저장한 데이터를 처리할 CPU 의 자원이 필요하다. 우리는 Apache Hadoop을 왜 쓰게 되었을까?큰 데이터를 처리하기에 기존 방식은 너무 비싸다.애플리케이션/트랜잭션 로그 정보는 매우 크다. ▶ 대용량 파일을 저장할 수 있는 분산 파일 시스템을 제공한다.I/O 집중적이면서 CPU도 많이 사용한다.▶ 멀티 노드로 부하를 분산시켜 처리한다.데이터베이스는 하드웨어 추가 시 성능 향상이 선형적이지 않다.▶ 장비를 증가시킬수록 성능이 선형적으로 향상된다. 데이터베이스는 소프트웨어와 하드웨어가 비싸다.▶ Apache Hadoop은 무료..
- SQL
- Linux 명령어
- spring
- 리액트
- javascript
- 이직
- sort algorithm
- 개발환경
- 프로그래머
- 프로그래머스
- 리액트 16
- Tomcat
- 회고
- 제주도 3박4일 일정
- 리눅스 명령어
- 제주도 여행
- Eclipse
- Collection
- effective java
- 오라클
- 자바
- 소프트웨어공학
- React
- 성능분석
- Java
- 자바스크립트
- 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 | 31 |