분류 전체보기 309

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

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

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

Dev 2018.04.01

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

좌표계 변환 모듈 for swift

기상청 Open API 가 TM 좌표 기반이라 iOS 의 WGS84 를 변환하기 위해서 변환 모듈을 하나 만들었습니다. http://www.androidpub.com/1043970 에 공개해 주신 분의 자바 코드를 스위프트 코드로 포팅했습니다. 스위프트를 공부하면서 처음으로 개발한 모듈이라서 이상한 부분이 많을 수도 있습니다. 거의 그대로 포팅했지만 변수가 사용된 부분을 전부 상수 처리로 대체하느라 코드 구조가 약간 다릅니다. 카카오 Open API 에서 변환한 값이랑 약간의 오차가 발생하는데 제가 변환 식을 이해하고 포팅한게 아니라서 수정할 수는 없네요. 도움을 바랍니다. 코드는 공개합니다.https://github.com/prostars/CoordinatesConverter

Toy Project 2017.08.20

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

테스트 용이성(Testability) 향상을 위한 DI(Dependency Injection)

이전 포스팅 BDD(Behaviour-Driven Development)에 대한 간략한 정리에서 같이 다루려고 했던 내용이다. 테스트 용이성이랑 말 그대로 테스트 대상을 얼마나 테스트하기 쉬운가에 대한 척도이다.테스트 대상이 얼마나 복잡한가? 얼마나 결합도가 높은가? 등 몇 가지 내용이 있지만 여기서는 테스트 용이성에서 결합도와 Mocking 에 대한 내용만을 간단히 다룬다.최대한 코드를 배제하겠다. 이 글에서 Mocking 은 Mocking 객체를 의미하며 이를 간단히 말하면 실제 객체를 흉내내는 가짜 객체를 하나 만드는 것이다. 실제 클래스와 동일한 인터페이스를 가지고 있어서 외부에서 볼 때는 가짜인지 모르고 사용할 수 있도록 설계된 클래스를 인스턴스화 한 것을 말한다. 이야기 진행을 위해서 테스트 ..

Dev 2017.06.19
반응형