본문 바로가기

Develop

(28)
[Java] 모던 자바(Modern JAVA) 란 무엇인가!!!!😒 (feat. 새롭게 추가된 기능들) "모던 자바(Modern Java)"는 주로 자바 프로그래밍 언어의 최신 기능과 개선된 패러다임을 지칭합니다. 기존의 자바 버전에서 도입된 기능들과는 달리, 자바 8 이후부터의 새로운 기능과 변경된 프로그래밍 스타일을 포함합니다. 모던 자바에서는 함수형 프로그래밍의 개념을 도입하고, 람다 표현식과 스트림 API 등을 통해 코드를 더욱 간결하고 유연하게 작성할 수 있습니다. 또한, 형식 추론(var 키워드), 모듈 시스템, 레코드(Records) 등과 같은 새로운 기능들이 추가되어 프로그래머가 코드를 작성하고 유지보수하는 데 도움이 됩니다. 따라서 모던 자바는 자바 언어를 사용하여 최신의 개발 트렌드와 요구 사항에 부합하는 현대적이고 효율적인 코드를 작성하는 것을 의미합니다. 자바8 이후에 새로운 기능들을..
[모니터링] 프로메테우스 + 그라파나 모니터링 시스템 구축하기 (feat micrometer) 이 전에 만든 스프링 배치+스케줄러에서 호출하는 API 퍼포먼스 측정을 위해 CTO님이 WAS 모니터링 환경을 구성하는 업무를 지시하였다. 근데 난 모니터링 환경을 구성해본적이 없다 😭 ( 사이드프로젝트가 아니라 회사에서 구성한 적은 이번이 처음 😅) 스타트업에서는 해당 환경을 구성할 일이 없었고 그 전 회사에서는 어느 과장님께서 이미 구성한 환경을 이용만 해보았는데 처음하는 일인지라 간만에 집중했던 것 같다 🤪 스카우터와 프로메테우스에서 고민을 많이 했지만 추후 확장성과 대시보드를 다양하게 구성할 수 있고 차트 디자인도 마음에 들어서 스카우터+그라파나 를 선택하게 되었다 😆 포스팅 할 생각이 없었던 지라 설치부터는 사진을 남기지 않았다.. 🤦‍♂️ 공식문서 또는 위키 설명과 서버에 구성하는 방법에 대해..
스프링 배치(Spring Batch) 시작하기 !😭 스프링 배치 5가 릴리즈된지 거의 1년이 흘렀는데 이 때는 안보고 있다가.. 😛 급하게 스케줄러와 배치를 이용해야 되는 일이 생겻다 😥 내가 만들어야 할 프로그램 프로세스 흐름은 이와 같다. 프로그램 한 사이클이 돌아가는데 약 2시간 조금 안되게 걸리고 있는 상황인데, ( 마스터 데이터가 늘어날 수록 시간이 곱이 되는 상황) 개발 하고 나서 어느점을 보완해야 되는지 설명 하는게 더 빠를 것 같아서 일단 개발한다.. 배치 was,api was가 버틸수 있을 지 모르겠다.. 스케줄 시간보다 잡이 더 길어질수도 있는 상황.😑 기술적으로 자문을 구할 수 있는 상황이 아니며.. 정책적으로도 풀 수 없는 상황이라 참 난처하다.. 최대한 스케일 아웃으로 풀어야 하는데.. 머리가 너무 아프다 😩 일단 만들어보자 😵 아..
[백엔드 개발자 면접 단골 질문 뿌시기 - 3] 스레드(thread)와 프로세스(process)의 차이를 설명해 줄 수 있어요? 😲 전공자라면 운영체제(OS) 를 배우기 때문에 프로세스와 스레드 개념을 알고 있겠지만 비전공자에게는 익숙치 않다. 😥 면접 단골 질문인 만큼 이 글을 통해 프로세스와 스레드 개념을 이해하고 차이점에 대해 간략하게나마 기억에 남기기 위해 글을 작성해둔다. 😆 0. 프로그램과 프로세스(Process) 10분 테코톡 코다님 영상에서는 프로그램과 프로세스에 대해서 피자집에 간 상황으로 비유하고 있는데 피자 레시피 = 프로그램 피자 = 프로세스 이처럼 프로그램 자체는 실행시키기 전에는 코드가 구현되어 있는 파일일 뿐 피자를 주문하기 위한 종이 레시피가 피자가 되는 것 처럼 프로그램이 실행이 되어 사용할 수 있는 무언가가 되는게 프로세스이다 1. 프로세스와 스레드의 정의 프로세스 (Process) 스레드 (Threa..
[백엔드 개발자 면접 단골 질문 뿌시기 - 2] JVM(Java Virtual Machine) 에 대해 설명 하세요 😤 👦 : JVM에 대해서 설명해줄수 있나요? 😳 : 자... 자바.. 버츄얼 머신으로 .. .java(자연어) 를 컴파일러를 통하여 .class(바이트코드) ... .. 운영체제마다 다른 기계어를... 👦 : 나가 😫 : ... JAVA개발자라면 주민등록번호처럼 군번처럼 툭 건드리면 관등성명 대는 것 처럼 술술 나와야 되는 상식이라고 생각드는데 개인적으로 주니어 ~ 시니어를 떠나서 가볍게 묻기 좋은 질문이라고 생각한다. 😂 깊게는 몰라도 정의는 꼭 알아두도록 하자! 🥱 그래서 JVM이 도대체 뭔데? Java Virtual Machine(자바 가상 머신)은 Java로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상머신이다. JRE(Java Runtime Environment)에 포함..
[백엔드 개발자 면접 단골 질문 뿌시기 - 1] 3계층 아키텍처(3 Tier- Architectur)가 뭘까? MSA 환경에 개발을 하는 회사에서는 아마 면접에서 자주 물어보는 질문일 것이라고 생각이 들어 남겨 놓는다 🤣 3계층 아키텍처란? IBM에서는 이렇게 정의하고 있다. 3계층 아키텍처(3 Tier-Architectur)는 애플리케이션을 프레젠테이션 계층 또는 사용자 인터페이스, 데이터가 처리되는 애플리케이션 계층 그리고 애플리케이션과 관련된 데이터가 저장 및 관리되는 데이터 계층이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성하는 확립된 소프트웨어 애플리케이션 아키텍처입니다. 정의는 알았으니 각 계층에 대해서 상세히 알아보자면 🤔 프리젠테이션 계층 - 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 커뮤니케이션 계층 - 웹 브라우저, 데스크탑 애플리케이션 또는 그래픽 사용자 인..
아파치 카프카(APACHE Kafka) 그게 도대체 뭔데 😤 카프카 기본 개념에 대해 알아보자 최근 몇년 전부터 개발자 채용 공고에 빠짐 없이 등장하는 기술 키워드가 있다. 바로 *아파치 카프카(Apache Kafka)이다. *정의 아파치 카프카(Apache Kafka)는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이 프로젝트는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표이다. 요컨대 분산 트랜잭션 로그로 구성된, 상당히 확장 가능한 pub/sub 메시지 큐로 정의할 수 있으며, 스트리밍 데이터를 처리하기 위한 기업 인프라를 위한 고부가 가치 기능이다. 디자인은 트랜잭션 로그에 많은 영향을 받았다. 역사 아파치 카프카는 원래 링크드인이 개발한 것으로, 2011년 초에 최종적으로 오픈 소스화되었다...
Slack , Google spreadsheet 활용하여 업무 효율성 높이는 방법 🤪 일을 하다보면 이력 관리에 중요성을 정말 많이 깨닫게 된다. 보고용 자료를 만들 경우에도 전에 일하던 사람 업무를 이어 받을 경우에도.. 유지보수 할 때도 마찬가지다 😂 분명 작성 당시에는 번거로움이 있을 순 있어도 필요한 시점에 이력이 없으면 입이 대빨 튀어 나오게 된다 😑 이미 사내에서 협업도구로 트렐로를 이용하고 있지만 트렐로는 타 부서에서 요청 시 이력을 관리하고 있는 것으로 보여졌다. 팀 내부에서는 간단하게 메신저로만 주고 갈 뿐 제대로 기록 되지 않아 기획자분들이 개발자분들에게 전달할 때 누락되거나 잘못 와전되는 경우도 허다 했다. 기존에 구글 시트를 많이 이용하고 있는 것을 보고 구글 스크립트와 슬랙을 엮어보면 어떨까? 하고 간단하게 만들어 보았다 😩 자 그럼 본격적으로 슬랙과 구글을 연동하..