로그 작성하는 방법이 Go 언어에서는 기존 Java, .NET과는 약간 다른 방식으로 사용됩니다. 그래서 로그 작성 라이브러 관련 정보를 찾다가 다음의 글들을 보게 되었습니다. Let’s talk about logging - Dave Cheney [참고1], What’s so bad about the stdlib’s log package? [참고2] 위 글을 읽고 로그 작성이라는 관점에서 많은 고민을 하게되었습니다. 위 글은 Go 관점으로 이야기를 하지만 다른 언어에서도 공통적인 고민 요소라고 생각되었습니다. 회사에서는 Kotlin & Java 로 현재 개발을 진행 중인데 프로젝트를 진행하며 로그에 대해서 깊게 생각하지 않았다는 생각이 들어서 다음과 같은 고민을 해보았습니다. 더보기

JavaFX는 Java 기반으로 Desktop Application 을 만드는 방법 중 하나입니다. 저의 첫 회사에서는 Web service 대신 Desktop application 에 대한 요구사항만 있어서 주로 사용하였습니다. .NET 이면 WinForm, Java면 JavaFX로 구현하였습니다. 지금은 Web service만 개발을 하다보니 사용할 일이 없다가 업무용 리뷰 알림 유틸리티를 MacOS용으로 만들기 위해서 오랜만에 사용하였습니다. JavaFX의 특징은 .NET WPF(Windows Presentation Foundation)와 유사하게 View(FXML)과 Controller, Model이 명확하게 구분되는 MVC(Model-View-Controller) 모델이라는 점입니다. MVC를 기반으로 디자인하는 과정 중 클린 코드(로버트.C.마틴 저)를 오랜만에 정주행 하고 좋은 구조를 디자인 하기 위해서 DIP(Dependency Inversion Principle)에 따라 구현체를 인터페이스에 주입하기 위해서 Guice[참고1]를 사용하였습니다. 더보기

코드 리뷰 중 final을 언제 붙일까? 라는 고민이 들었습니다. 프로젝트 구성원과 논의한 내용은 ‘일단 다 붙이자’, ‘마음대로 하자’, ‘그게 뭐임? 신경 써야함?‘와 같이 역시 다양했습니다. 개인적으로는 가능하다면 ‘일단 다 붙이자’라는 생각이었습니다. IntelliJ IDEA에서 변수 추출 시 자동으로 final을 붙여주기 때문에 별도의 타이핑도 필요 없고 일단 붙인다면 적어도 컴파일 시점에 개발자의 실수를 최소화 할 수 있다고 생각하였습니다. 하지만 불필요하게 final을 사용하는 경우도 있었습니다. 현재까지 final 사용에 대한 고민은 다음과 같습니다. 정답은 아니지만 사람들이 고민하고 결정에 참고 할 수 있도록 정리해 보았습니다. 더보기

Java 프로젝트를 초기 구성하기 위해서 IntelliJ에서 제공하는 새 프로젝트를 활용합니다. 하지만 많은 템플릿 중에서도 개인적으로 Gradle을 기반으로 Checkstyle, PMD, FindBugs(SpotBugs)를 함께 사용합니다. 코딩 스타일 통일 정적 분석으로 빨리 문제점 인지하기 이 두가지 목적을 위해서 플러그인을 함께 사용합니다. 그리고 Gradle or Maven은 특별히 구분하지 않지만 다양한 시도가 가능한 Gradle을 조금 더 좋아합니다. 하지만 아직도 Groovy 문법은 어색하고 모르겠습니다. T-T 프로젝트를 시작할 때 처음으로 챙겨야 할 가장 중요한 요소는 코딩 스타일이라고 생각합니다. 더보기

본 글은 인공위성과 관련된 시스템을 개발하는 업무 중 좋은 설계란을 고민하며 작성한 글입니다. 현재는 다른 도메인으로 이직을 한 상태이지만 작성 시 일반적인 프로그래머의 입장에서 작성하였기 때문에 다른 분야의 프로그래머도 함께 고민할 수 있는 주제라고 생각합니다. 좋은 설계를 고민해보면 일단 설계가 무엇인지 정의가 필요합니다. SW공학에 영향을 많이 준 건축의 설계 정의는 다음과 같습니다. 건축설계의 정의(建築設計, architectural design)는 건축물을 구축하기 위하여 요구되는 기능과 형태와 구조를 결정하고 물리적 형식을 구체화하는 과정을 총칭한다. 더보기

페이지 1 / 1
위로