분류 전체보기 474

자바 8 Optional

Null Pointer Exception 이 피곤하신가요? 그렇다면 자바 8 Optional 을 써보세요 . 예를 들어 아래와 같은 클래스가 있다고 가정합시다. public class Computer { private Soundcard soundcard; public Soundcard getSoundcard() { ... } ... } public class Soundcard { private USB usb; public USB getUSB() { ... } } public class USB{ public String getVersion(){ ... } 우리는 USB 클래스의 getVersion 을 호출하고 싶습니다. 그렇다면 이러한 방법을 생각해볼 수 있습니다. String version = compu..

좋은 직원을 채용할 수 있는 최고의 면접 질문 13

좋은 직원을 채용할 수 있는 최고의 면접 질문 13 만약 당신이 최고의 직원을 뽑고 싶다면 면접시 던질 질문만큼 중요한 건 없다. 각계각층의 임원이 면접 때 자주 하는, 가장 효과적인 질문은 무엇일까? 아래는 다양한 회사의 임원들이 지원자를 면접 할 때 자주 하는 13가지 질문과 그들이 기대하는 대답이다. 취업을 준비하고 있다면 꼭 참고하길 바란다.만약 취직해서 1년 후 큰 성과를 이루게 되고 우리가 함께 축하하는 자리에 있다고 생각해 보세요. 당신은 지난 1년 동안 무엇을 성취했을 것 같나요?랜디 가루티, 쉐이크 쉑 회장 "면접에서 가장 중요한 것은 지원자가 면접관에게 오히려 궁금한 것이 많으냐다. 그걸 보면 면접 오기 전 회사와 면접관에 대해 얼마나 조사를 했는지 알 수 있다. 진심으로 이 일을 원하..

좋은글귀 2015.07.30

문자열 두개를 받아 그 중 하나가 다른 하나의 순열인지 판단하라(2)

/** * Created by kwo2002 on 2015-07-29. * 문자열 두개를 받아 그 중 하나가 다른 하나의 순열인지 판단하라 */ object Permutation { def permutation1(a: String, b: String): Boolean = { if (a.trim.length != b.trim.length) { false } else { a.sorted.equalsIgnoreCase(b.sorted) } } def permutation2(a: String, b: String, p: Array[Char] => Array[Int]): Boolean = { if (a.trim.length != b.trim.length) { false } else { val aArr: Array[..

문자열 두개를 받아 그 중 하나가 다른 하나의 순열인지 판단하라

/** * Created by kwo2002 on 2015-07-29. * 문자열 두개를 받아 그 중 하나가 다른 하나의 순열인지 판단하라 */ object Permutation { def permutation1(a: String, b: String): Boolean = { if (a.trim.length != b.trim.length) { false }else { a.sorted.equalsIgnoreCase(b.sorted) } } def main(args: Array[String]) { println(permutation1("aaccbb", "bbccaa")) } } 1. 공백은 무시. 대소문자 무시2. 문자열 길이가 다르다면 무조건 순열이 아님.3. 문자열을 문자열.sorted 로 정렬한 후 비교..

문자열에 포함된 문자열이 유일한지 검사하는 알고리즘

/** * Created by kwo2002 on 2015-07-27. */ object UniqueChar { def validUniqueChar(text: String): Boolean = { def go(n: Int, seq: Int, text: String): Boolean = { if (n < text.length && seq < text.length) { if (text.charAt(n) == text.charAt(seq)) { false } else { go(n, seq + 1, text) } } else { if (n + 1 < text.length) { go(n + 1, n + 2, text) } else { true } } } go(0, 1, text) } def main(args: A..

프로젝트 아키텍처 사용된 프레임웍 1차 완성

Java 1.8 - 기반Spring Framework 4.1.7.RELEASESpring Boot 1.2.5.RELEASE - Data AccessSpring JDBC Groovy - 쿼리 보관용 : 멀티라인 스트링 때문에 도입. Java 8 의 람다를 이용하여 JdbcTemplate 을 사용하기가 많이 편해짐. HikariCP - 보안Spring Security 3.2.7.RELEASE : 버전이 낮은 이유는 spring-boot-starter-security 가 3.2.7 이기 때문. - Rest Resource 표현Hateoas - 로깅Logback - 빌드Gradle - DatabaseMariaDB - json ,xml 변환Jackson - 세션Spring SessionRedis 3 - 버전관리G..

아키텍처 구성 후 심정 기록.

아키텍처 구성 후, 외부 업체의 개발 생산성을 이유로 외부 업체 자체 프레임웍을 내가 설계한 아키텍처에 붙였습니다. 내가 보기에 아주 조잡하고 맘에 안들어서 반대를 했지만, 내 능력 밖이였습니다. 반대하는 과정에서 팀장님과 약간의 언쟁(?) 이 있었습니다. 외주 업체 자체 프레임웍이라는게 데이터베이스와 연결하여 도메인 클래스를 만들어주고, 기본적인 CRUD 는 자동으로 처리해주는 것 이였습니다. 내가 이 자체 프레임웍이 맘에 안드는 이유는 첫째, 자동생성된 도메인 클래스가 아주 맘에 안들었습니다. 자동생성된 도메인 클래스 자동생성된 도메인 클래스는 위 그림과 같았는데, DDD를 추구하던 나로써는 아주 보기가 좋지 않았습니다. 그런데 팀장님이 이게 왜 나쁜건지 설명해보라고 하니, 설명을 제대로 하지 못했고..

프로젝트 아키텍처 설계 및 프레임웍.기술 선정하면서 하게 된 고민..

프로젝트는 아직 시작도 안했지만, (5월 6일 부터 시작) 아키텍처에 대한 고민은 이미 한달 정도 한것 같다.. 프로젝트 기본 아키텍처 및 그동안 하게된 고민에 대해 간략히 작성한다. Java 1.8Spring Framework 4.1.6.RELEASESpring Boot 1.2.3.RELEASESpring Security 4.0.1.RELEASESpring Session 1.0.1.RELEASE - RedisSpring HATEOAS 0.17.0.RELEASEMybatis 3.2.8 데이터베이스 MariaDB 혹은 MySQL 빌드/의존성 관리 Gradle배포/빌드 Jenkins 현재 프레임웍 선정은 위와 같이 했고, 프로젝트 틀은 구축해놓은 상태이다.. 위 프레임웍을 선정하면서, 많은 고민을 했다. 1..