반응형

Dev 76

Codility Lessons 6 완료

4번 문제(NumberOfDiscIntersections) 어렵다! 저번 주 일요일 오후를 다 썼는데 정확도 100점, 성능 점수 25점으로 총점 62점까지가 한계였다. 결국, 컨닝을 하기로 하고 구글링을 했는데, 2010년도 챌린지 문제였네. 그래, 어렵더라. 여러 가지 솔루션이 있는데 정말 참신하다고 생각되는 솔루션이 2개 있어서 그걸 읽고 이해한 후에 다시 풀었다. 첫 번째는 두께로 접근해서 풀이한 방법이었는데 자바로 돌리면 성능 점수 62점으로 총점 81점이 나온다. 언어에서 pair 를 지원하지 않으니 객체를 만들어서 돌렸는데 객체 생성 비용에서 걸리는 것이 아닌가 생각한다. 두 번째는 원의 앞, 뒤를 주어진 배열 크기로 다 잘라내고, 시작점의 개수, 끝점의 개수를 카운팅하여 모아두고 해당 카운..

Dev 2019.02.22

Go 언어 입문서 추천

최근 프로젝트는 Go 언어로 개발을 진행하고 있어서 작년 말부터 Go 언어를 사용하고 있지만, 아직 손에 익지 않았다. 작년에 처음 Go 언어로 프로젝트를 시작하면서 몇 권의 Go 언어 책을 구매하고 공부했다. 그 중에 ‘개발자를 위한 하룻밤에 읽는 Go 언어 이야기’와 ‘디스커버리 Go 언어’ 2권을 추천한다. Go 언어는 스팩만을 보면 아직은 애매한 포지션에 있는 언어라고 생각한다. 처음에 접했을 때, 다시 C 로 코딩하는 느낌의 어색함과 반가움이 교차했었다. 그래도 최근 언어 답게(?) 동시성을 언어에서 go func 과 channel, select 등의 기본 스팩으로 제공한다. 하지만, class 는 없다. 상속도 없다. struct 와 receiver 라는 기능의 조합으로 구성을 해야 하는데 이..

Dev 2019.02.16

Codility Lessons 1 ~ 5 완료

이전 직장에서는 지원자에게 코딜리티 서비스를 사용해서 코딩 테스트를 봤었다. 그때는 무료 문제가 경력을 입력하면 해당 경력에 어울리는(겁나 어려운) 문제를 무료 문제로 풀어볼 수 있었는데. 언젠가 레슨이라는 기능이 생겼네.https://app.codility.com/programmers/lessons 설 연휴 동안 오랜만에 집에서 코딩을 해봤다.겨울이라고 요즘 너무 놀기는 했다. 보딩하러 가고, 책 보고, 영화 보고, 게임하고...레슨 5 까지 완료했고, 6 은 조만간 완료 예정이다.아래는 풀이를 github 에 올려놨는데, 먼저 문제를 풀어보고 참고용으로 사용하면 좋을 것 같다.https://github.com/prostars/codility Lession 1 Iterations1. BinaryGap ..

Dev 2019.02.06

7가지 동시성 모델

[2017년 9월 13일 작성글 옮김] 얼마 전에 클로저 입문서 하나를 봐서 다행이다. 이 책에 이렇게 클로저 코드가 많이 나올 줄이야. 액터까지는 매우 공감하면서 재밌게 봤다. (이후부터 좀 어렵다.) 아카의 액터를 사용할 때 이게 얼랭에서 가져온 거라고는 알고 있었는데 실제 엘릭서 코드를 보니 또 신기하네. 실제로 돌려보면서 봤으면 더 좋았을 건데 좀 아쉽다. 특히 8장의 하둡은 개념은 얼추 알겠는데 실제 돌려봐야지 감이 오겠다. 7장의 OpenCL 10여 년 전 자막기를 개발할 때 알았으면 유용했을 것 같다. (그때도 있었나??) 조만간 업무적으로 자바 / 스프링을 만져야 하니 당분간 스프링 쪽을 봐야겠구나~ 스프링은 어디부터 봐야하나... 리디북스 : 7가지 동시성 모델 #독서 #기술서적 #추천도서

Dev 2018.12.17

IntelliJ 의 JShell Console 을 활용하자

최근에 Java 를 실무에 사용하면서 JShell 이 있어서 참 다행이라고 생각하고 있다. IntelliJ 가 JShell Console 이라는 기능으로 툴 안에서 JShell 을 연동해주고 있어서 더 편리하게 사용하고 있는데 이번 글에서는 JShell 에 대한 간단한 소개와 유용함을 알아보자. 이 글은 macOS 를 기준으로 하며 다음의 내용을 다룬다. JShell 에 대한 간단한 소개Java 8, 9, 10 를 손쉽게 전환하면서 사용하는 방법IntelliJ 의 JShell Console 사용하기IntelliJ 의 JShell Console 에서 사용자 클래스 사용하기 JShell 에 대한 간단한 소개JShell 은 node.js 의 shell 이나 scala 의 shell 처럼 코드를 바로바로 실행하..

Dev 2018.04.30 (1)

JAVA 8 에서 케이크 패턴(Cake Pattern)을 사용해보자

지난 글에서 의존성 주입(Dependency Injection)에 대한 이야기를 했었다. 이번 글에서는 다른 방식의 의존성 주입인 케이크 패턴을 소개한다. 스칼라의 케이크 패턴에 대한 자세한 내용은 여기를 참고 바란다.케이크 패턴스칼라의 케이크 패턴을 자바에서 사용해보자. 케이크 패턴은 의존성 주입의 한 방법이다. 자바 8에서는 인터페이스가 구현 코드를 담은 디폴트 메소드를 가질 수 있게 되었다. 이 디폴트 메소드를 이용하면 스칼라의 trait 와 비슷해진다. 비록 trait 의 셀프 타입을 사용할 수는 없지만, 어차피 자바는 스칼라처럼 with 를 사용하여 객체 생성 단계에 와이어링을 할 수 없으니 상관없다.공통 구성로그 기록을 담당하는 Logger, 설정 로딩을 담당하는 Configuration 가 ..

Dev 2018.04.01 (2)

Setting ZeroMQ for MacOS

Mac 에서 개발 환경을 설정하던 중에 ZeroMQ 에 종속성을 가진 프레임워크를 사용할 일이 생겼다.이거 하나 때문에 윈도를 다시 개발 환경으로 사용하고 싶지는 않아서 ZeroMQ 를 Mac 에서 사용할 수 있도록 설정하는 방법을 찾았고 아래에 정리했다. ------------------------------------------------------------------------------------------1. brew 설치https://brew.sh/index_ko.html 2. jzmq 빌드에 필요한 툴들 설치brew install autoconfbrew install automakebrew install lib toolbrew install pkg-configbrew install zero..

Dev 2018.01.12

Source Tree for Mac 에서 password reset

회사에서 enterprise github 서비스를 사용하고 있는데 주기적으로 암호가 변경된다.최근 1년간 업무적으로는 다시 windows 만 사용해와서 source tree for mac 으로 enterprise github 서비스를 처음 사용해봤다. 문제는 git 암호를 변경하니 source tree 에서 pull, push 모두 실패한다.암호가 틀리다고... 틀리겠지 바꿨으니까!그럼 다시 입력하라고 나와야 하는 게 순서 아니야?계속 삽질을 하다가 해결했다. mac 에서 key chain app 실행하고 github.nhnent.com Access Key for xxxxxxx 항목을 찾아서 삭제하면 해결된다.위 항목을 삭제하고 source tree 에서 pull 을 해보면 드디어 암호를 다시 물어봐주신다.

Dev 2017.12.28 (2)

Google Mock 사용을 위한 간단한 정리

앞서 포스팅했던 단위 테스트 관련 글들에 이어서 이번에는 C++ 에서 단위 테스트를 사용하기 위한 프레임웍으로 Google Test와 Google Mock을 간단히 소개하겠다. Google Test : https://github.com/google/googletestGoogle Mock : https://github.com/google/googletest/tree/master/googlemock 세부적인 Assertions 함수들은 아래 문서를 참조하자.https://github.com/google/googletest/blob/master/googletest/docs/Primer.md 여기서는 Mocking 을 어떻게 구성하는지 간단한 Sample Project 를 가지고 설명한다.https://gith..

Dev 2017.08.10 (1)
반응형