-
개발 MSA 구조에서 프로그래밍하기... 요즘 가장 기본이 되는 구조는 MSA(Microservice Architecture)입니다. 이렇게 일하다 보면 혼자 일하기보다 기본적으로 퍼블리셔(Publisher), 프런트엔드 개발자(Front-end Developer), 백엔드 개발자(Back-end Developer)가 함께 일하게 됩니다. 여기에 프로젝트 매니저(Product Manager) 등이 함께 개발을 하게 됩니다. 오늘은 개발에 있어 코드에 대한 이야기 보다 개발을 하는 과정에서 습관을 만든다면 좋을 것 같은 내용을 공유해보려고 합니다. 1. 문제의 시작 우리가 개발을 하다 보면 기능(Feature)과 오류(Bug)를 묶어 일을 하게 됩니다. 프로덕트 매니저는 소프트웨어 버전을 픽스하고 이번 기간에 해야 할 기존에 쌓아둔 기능, 오류 ..
-
Java 당신의 메소드에는 예외를 명시하고 있는가? 메서드를 만들어 기능을 구현하다 보면 기능구현, 리팩토링등 기능적인 측면에서 빠르면서 정확한 값을 반환할 수 있는가에 초점을 맞추고는 합니다. 예외 발생에 대해서는 Spring과 같은 Framework의 발달로 예외를 한곳에서 받아서 처리해 주는 것을 활용하여 예외를 일목요연하게 처리하는 것이 아닌 생각을 합니다. 저의 개인 적인 생각이지만, 거의 모든 프로그램이 그 존재 자체로, 아이디어만으로 훌륭하지만 그 프로그램의 질의 단계를 한 단계 끌어올리는 것은 아마도 예외를 처리하는 것에 있지 않는가 생각합니다. 1. 왜 예외를 말하는 것인가? 저는 많은 시간은 아니지만 개발 업을 하다 보니 SI 회사를 거쳐 자체적인 소프트웨어를 만드는 회사에서 일할 기회가 감사하게도 있었습니다. 그런 기업에서 소프트웨어적..
-
Java JVM 메모리 영역을 생각하며 Java 코딩하기 우리가 습관 적으로 Java 코딩을 할 때 사소한 실수를 저지르는 부분이 있습니다. 사소한 것이지만 이 것이 쌓이고 쌓이면 성능에 영향을 미치기 때문에 이를 정리하고 공유하고자 합니다. JVM에 여러 메모리 공간중에 우리가 주로봐야 하는 2개의 메모리 영역이 있습니다. 하나는 Heap 이고 또 하나는 Stack입니다. Heap과 Stack은 서로의 라이프 사이클이 다르기 때문에 그 특징을 알고 있어야 합니다. 1. JVM 메모리의 이해 1.1. Heap Heap 메모리 공간은 기본적으로 인스턴스 객체가 있는 곳이라고 생각하면 됩니다. Heap 메모리 공간에 존재하는 인스턴스 또는 객체는 GC(Garbege Collector)의 대상이 될 수 있으며, 그 대상을 메모리 공간에서 지워도 되겠다 싶은 판단을 ..