본문 바로가기

전체 글

(70)
이펙티브 자바 03. private 생성자, enum 자료형, 싱글톤 패턴 싱글턴 패턴싱글턴은 말 그대로 객체를 하나밖에 생성할 수 없는 클래스를 말한다.동기화 문제를 가진 고전적 구현법, 동기화 문제를 해결하는 방법과 속도를 보완하는 방법처럼 보통 세 가지 방법으로 싱글턴 패턴을 구현할 수 있다. 가장 간단하게는 클래스의 static 필드를 이용하여 만든다.하지만 이는, 쓰레드 환경에서 동기화 문제가 존재하기 때문에 synchronized 키워드를 사용하여 동기화를 시킨다.그러나 동기화는 항상 속도와 관련된 문제가 따라다닌다.싱글턴 패턴의 동기화 과정에서 속도 문제를 해결하기 위해 DCL(Double-Checking Locking) 기법을 사용해서메소드의 동기화되는 부분을 줄일 수 있다. 싱글턴 패턴에 대한 자세한 설명은 헤드퍼스트 디자인 패턴: 5. 싱글턴 패턴 에 등장하므..
개발자라면 꼭 알아야할 사이트/도구 11가지 -1- 1. 깃북 (GitBook) 개발자라면 라이브러리나 API문서를 공부하다 위와 같은 페이지를 접해보았을지도 모른다.GitBook은 마크다운 기반의 전자책 집필 시스템으로 깃허브와 연동하여 markdown 파일이 관리가 가능하며,위와 같이 깔끔한 형태를 가진 문서를 작성할 수 있다. 2. 컬러 스크립터 (Color Scripter) 웹 환경을 제공하는 코드 하이라이터. 필자가 블로그에 코드를 올릴 때 사용하는 도구이다.자바, 자바스크립트, 마크다운, SQL 등 다양한 언어을 지원하며 이클립스처럼 에디터의 스타일을 변경할 수 있으며HTML로 복사할 수 있을뿐 아니라, 확장스토어를 이용하여 커스텀 스타일패키지도 이용할 수 있다.개인적으로 가장 추천하는 도구. 3. 코드 슬라이드 (Spactacle CodeSl..
이펙티브 자바 02. 점층적 생성자 패턴, 자바빈 패턴, 빌더 패턴 필수적 요소와 선택적 요소클래스의 인스턴스를 생성할 때, 필수적인 요소와 선택적인 요소가 여러개 필요한 경우가 있다.정적 팩토리 메소드나 생성자는 선택적 인자가 많은 상황에 잘 적응하지 못한다는 문제점을 갖고 있다. 마트에서 포장 판매되는 음식을 살 때, 음식에 붙어있는 영양 성분표를 예로 들어보자. 영양 성분표에는 반드시 포함되어야 하는 항목이 몇 가지 되지 않는다.총 제공량(serving size), 1회 제공량(servings per container), 1회 제공량당 칼로리(calories per servings) 등이 필수적인 항목이다.반면에, 선택적인 항목은 적어도 20개가 넘는다.총 지방 함량(total fat), 포화 지방 함량(saturated fat), 트랜스 지방 함량(trans fa..
이펙티브 자바 01. 정적 팩토리 메소드와 서비스 제공자 인터페이스 (JDBC 예제) 객체 생성자바에 처음 입문하면 클래스와 객체에 대해 배운다.이후 실습을 통해 생성자를 정의하고 new 키워드로 생성자를 호출하여 객체를 만들어 사용하는 연습을 하고,시그니처와 오버로딩을 이용해 여러 개의 생성자를 정의하여 제법 객체지향적인 코드를 만든다. 생성자생성자는 객체를 생성하기 위해 기본적으로 제공되는 기능이다.하지만 생성자의 시그니처만을 보고 개발자의 의도를 완전히 파악하기는 어렵다.때문에 우리는 API 문서를 보고, 우리에게 필요한 생성자를 찾아야 한다.정적 팩터리 메소드를 사용하면 메소드 이름, 반환 자료형만으로 의도를 전달할 수 있다. 정적 팩토리 메소드클래스 자신의 타입을 반환하는 public static 메소드.클래스를 정의할 때 생성자와는 별도로 정적 팩토리 메소드를 제공할 수 있다...
cnsblog 2주차. 1차 스프린트 진행 결과 팀원들이 전부 직장인, 학생이라 일정대로 진행하기가 어려웠다.스프린트 기간을 2주로 늘리고 새로운 팀원을 받아 진행 중이다. 1차 스프린트@ 백로그: 회원관리/인증- 회원 가입- 로그인 - 인증 JWT- 정보 수정 다른 팀원 2명이 API 서버의 공통 Request, Response 구조를 잡았다.다른 한명은 회원가입 기능, JWT 인증을 구현했다.나는 vue, vuex, axios와 vuelidate를 공부하여 회원가입/로그인 컴포넌트의 유효성 검증, API 요청을 구현했다.사실 상 JWT 인증을 구현하신 분이 다 만들어 놓으셨지만, 따로 공부해서 이해하려고 노력했다. 유효성 검사 로직을 vuex store로 공유하려고 2틀을 소비했다.state의 user 객체와 바인딩되어 input 값이 들어올 때마..
jenkins와 node.js 연동 시 Killed로 인한 빌드 실패 (node:8705) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56 parseQuery() will be replaced with getOptions() in the next major version of loader-utils. /tmp/jenkins5733662706646340178.sh: line 3: 8693 Killed npm run build Build step 'Execute shell' marked build as failure 뷰쪽을 조금 수정하고 push했는데 서..
cnsBlog 첫 push 드디어 Vue 공부를 어느정도 마치고, 첫 push를 보냈다.Vue가 리액트나 앵귤러에 비해 쉽다고는 들었는데, 그래도 공부해야할 양이 상당한 듯.... 현재 우리가 클론을 받아온 vue-admin-lte에 세가지 이슈가 있다.1. 좌측 슬라이더 토글 버튼 미동작2. 우측 슬라이더 토글 버튼 미동작3. 네비게이션 트리 expand 미동작 1, 3번은 데모사이트에서는 동작하지만, 로컬에서 돌리면 이상하게 동작을 안한다.1번 이슈에 대한 solution는 해당 깃헙 이슈에 있어서 Fix한 뒤 커밋했다. 우선 첫 스프린트는 로그인/인증을 백로그로 잡았다.다른 두 명이 API 서버 공통 요청, 응답 부분을 작성하고 있고,한 명은 JWT를 스터디하고 AUTH 서버를 구성 중이다.나는 Vue를 파보고 싶다고 요청해..
애자일 스크럼 진행 - 애자일 방법론 * 애자일 프로세스 - 스크럼 * 스크럼 쉽게 이해하기 - 슬라이드쉐어 참고 자료로 전달해주신 애자일과 그 프로세스 중 하나인 스크럼에 대해 쭉 훑어보는 중이다. 요구사항인 백로그와 이를 일정 주기로 나눈 스프린트, 일일 스크럼 회의로 진행되는 프로세스는 분명 재밌을 것 같긴 하다.약 1년간 SI에서 근무해본 결과, SI에는 어울리지 않는 프로세스 인 것 같다. SI에 스크럼을 적용하기 어려운 이유SI 프로젝트의 팀원은 각자 자기만의 도메인이 있고, 팀원의 작업을 나누려고 하지 않는다.수시로 변경되는 요구사항과 고객사와의 소통 부재로 인해 자신에게 주어진 작업을 감당하기에도 벅차기 때문이다. 위의 포스팅을 작성하신 김대석님이 SI에서 애자일 적용하기 라는 글을 쓰셨다.스크럼의 모든 프로..