발단 IntelliJ를 사용하면서 스터디 및 테스트를 진행했을 때 갑자기 다음 이미지와 같은 에러 로그를 남기며 실행이 되지 않는 버그 현상이 발생했습니다. 우선 에러 로그를 대강 읽어보니 소스 코드의 자바 버전에 관련된 에러임을 확인해 볼 수 있었습니다. (Error log 아래 참조) Error:java: javacTask: source release 8 requires target release 1.8 구글링을 해보니 해결 방법은 의외로 엄청 간단하게 처리할 수 있었으며, 해당 내용을 공유하기 위해 포스팅했습니다. Solution IntelliJ 개발 툴에서 File > Settings > Build, Execution, Deployment > Java Compiler 를 클릭해 내용을 확인하게 되..
안녕하세요. 오늘은 IntelliJ에 코딩 컨벤션을 적용하는 방법에 대해서 포스팅하려고 합니다. 코딩 컨벤션이란, 깔끔하고 예쁜 코드도 중요하지만 현업 프로젝트를 진행할 때 중요한 것은 같이 협업을 하는 팀원이나 다른 업체 사람분들과 소스 코드의 통일성이나 가독성이 좋게 하고, 유지보수성을 높여주는 일련의 작업 관계자들 사이의 규칙입니다. 따라서, 통일된 코딩 컨벤션을 가져가는게 좋다고 생각되며 사용하고 있는 개발 툴인 IntelliJ에 Google Style을 적용한는 방법에 대해서 간단하게(?) 진행하겠습니다. 1. Google Style 다운로드 아래의 링크를 따라 intellij-java-google-style.xml 다운로드 받거나 xml 파일을 생성해 해당 내용을 붙여서 만들어줍니다. (내용은..
안녕하세요. 최근 이클립스에서 인텔리제이(IntelliJ)가 개발자가 사용하기 좋은 IDE라고 듣게 되어 인텔리제이를 결제하여 사용하게 되었습니다. 그러다 IntelliJ에서 지원하는 터미널을 연 순간, Windows 운영체제를 쓰는 사용자들은 터미널에 기본적으로 cmd 창이 뜨는 것을 볼 수 있었고, 저 또한 cmd 사용이 불편해 Git Bash를 연동하여 사용하고 있습니다. 그래서 오늘은 IntelliJ IDE에 Git Bash를 연동하는 방법을 간단하게 포스팅하도록 하겠습니다. Windows Default 터미널(cmd) Git Bash 연동 IntelliJ에서 File > Settings 또는 단축키 Ctrl + Alt + S를 눌러 Settings 창을 띄웁니다. Settings 창이 뜨게 되면..
Getting Start IOT(Internet Of Things : 사물인터넷) 프로젝트를 진행하게 되면서 Influx DB라는 시계열 데이터베이스(TSDB : Time-series Database)를 사용해 보았습니다. 최신 트렌트로 빅데이터가 등장했으며 앞으로도 시계열 데이터베이스가 중용되어질 것이라는 개인적인 생각이 듭니다. IOT의 경우, 각 디바이스들로 부터 시시각각 각종 데이터들(예를 들면, 공기, 수질, 전기 등)을 초, 분, 시간 단위로 수집이 되기 때문에 수집 데이터베이스에 특화된 시계열 데이터베이스를 사용하게 되었습니다. 시계열 데이터베이스에는 Open TSDB, Influx DB, Graphite 등이 있으며, 그 중 Influx DB를 사용한 경험에 대해서 공유드리려고 합니다. (..
최근 적용한 WebSocket에 대해서 포스팅 해보려고 합니다. 시작하며 최근 프로젝트 개발 및 유지보수 작업을 진행하면서, 알림 팝업창을 띄우는 방식에서 이슈가 있다는 것을 느꼈습니다. 그건 바로 폴링 방식으로 매번 프론트엔드 소스에서 신규 데이터가 있는지를 체크 하고 조회하는 형태로 구현이 되어 있었고, 바로 아래와 같이 신규 데이터가 있던 없던 간에 1초 마다 API를 call 하는 형태였습니다. 이런 형태의 폴링 방식은 부하를 가져올 것이라는 것을 예상했고, 이번 고도화 작업을 통해 웹 소켓(WebSocket) + STOMP를 적용해 신규 데이터가 있을 때만, 수신하고 있는 유저에게 팝업을 띄워주는 방식으로 적용하는 과정에 대해서 이야기 해보려고 합니다. 구성 단계 기본적으로 웹 소켓을 사용할 수..
시작하며 웹 서비스 및 솔루션 개발을 진행하다가 부하 성능 테스트를 위해 다양한 오픈소스를 찾아보게 되었는데, 그 종류로는 nGrinder, PINPOINT, JMeter 등이 있었고, 그 중에서 JMeter라는 Apache Jakarta 프로젝트를 사용해 테스트할 사이트 URL, 요청에 필요한 파라미터, 테스트할 사용자 수 및 반복 횟수 등을 설정해 웹 사이트 서버의 성능을 테스트한 내용을 공유드리려고 합니다. 보다 자세한 내용은 Apache Document의 내용을 읽어보시면 됩니다. (https://jmeter.apache.org/) 설치 및 실행 본 내용은 MAC OS에서 설치를 진행했으며, brew를 사용해 간단하게 설치를 진행합니다. brew install jmeter 수 많은 로그가 지나가면..
안녕하세요. 오늘은 여타 프로젝트를 진행하면서 여러 컬렉션 중에서 Map을 종종 사용할 때가 있습니다. 제가 프로젝트를 진행하면서 Map 데이터를 받아와 key와 value 데이터를 치환(즉, 바꿔서) 사용하고 싶은 니즈가 있었습니다. 그래서 고민을 하면서 검색 도중 자바 1.8버전 부터 지원 되는 Lambda식을 사용하여 아주 수월하게 치환을 할 수 있는 방법을 알게 되었고, 오늘은 간단한 예제를 통해서 Map의 key와 value를 치환하는 방법에 대해서 포스팅해보려고 합니다. public static void main(String[] args) { List list1 = new ArrayList(); list1.add(10); list1.add(20); list1.add(30); List list2..
안녕하세요. 오늘은 서버를 운영 중에 혹은 구축 중에 서버의 성능을 향샹시키는 용어들 중 스케일 업(scale-up)과 스케일 아웃(scale-out)에 대해서 포스팅을 해보려고 합니다. 1. 스케일 업(Scale-up) Scale-up이란, 서버의 자체 성능을 증가시키는 것이라고 생각하시면 됩니다. 즉, 기존의 서버에서 더욱 고성능의 서버로 변경하는 것을 의미하며, 스케일 업을 "수직 스케일"이라고 부르기도 합니다. 아래의 간단하게 도식화된 그림을 토대로 알아보도록 하겠습니다. 스케일 업의 문제점으로는 스토리지 컨트롤러의 확장성 한계의 문제, 성능 그리고 용량 확장 제한에 다다른 경우에 새 시스템을 추가해야되는데 이때 발생하는 마이그레이션 비용 등이 있습니다. 2. 스케일 아웃(Scale-out) Sc..
- Total
- Today
- Yesterday