전체 글

전체 글

    [Backend]IntelliJ(인텔리제이) 서버 실행 시, 로그 창 비교

    들어가며 인텔리제이(IntelliJ)에서 서버를 실행하면 서버와 관련된 정보 및 로그를 보여주는 창인 "Services" 창이 있음. 이 창에서는 실행시킨 서버에 대한 로그를 볼 수 있는데, 거기엔 "Server" 탭과 "Tomcat Localhost Log" 탭, 그리고 "Tomcat Catalina Log" 탭이 있음. 처음에는 그냥 서버 실행하면 먼저 활성화되는 Server 탭의 로그만 봤고, 거기에 있는 로그들이 전부인 줄 알았음. 누가 이걸 볼지는 모르겠지만, 나와 같은 실수를 최대한 빨리 고치기를 바라며 이 글을 쓰게 됐음 ! 서버 실행시, 로그 창 비교 Server 탭 얘는 현재 프로젝트에서 설정한 서버 구성과 관련된 정보를 보여줌. 서버의 이름, 상태(실행 중인지 중지된 상태인지), 호스트..

    Spring Batch - (4)배치 작업 개발

    Spring Batch - (4)배치 작업 개발

    배치 작업 개발 스프링 배치를 사용하여 배치 작업을 개발하기 위해서는 Job 설정과 구성, Step 정의와 처리 로직 구현, 그리고 Reader, Processor, Writer의 역할과 사용 방법을 이해해야 한다!! 1. Job 설정과 구성 Job은 스프링 배치의 최상위 개념으로, 배치 작업의 실행 단위. Job은 JobBuilderFactory를 사용하여 생성하고, JobBuilder를 통해 Job의 속성을 설정할 수 있음. JobBuilder를 사용하여 Job의 이름, 실행 시점, 파라미터 등을 설정하면 됨! 2. Step 정의와 처리 로직 구현 Step은 Job을 구성하는 작업 단위. 각 Step은 Reader, Processor, Writer 등의 구성 요소를 포함하여 작업의 세부 처리를 정의한..

    Spring Batch - (3)스프링 배치 아키텍처

    Spring Batch - (3)스프링 배치 아키텍처

    Spring Batch Architecture 스프링 배치는 Job, Step, Tasklet이라는 개념을 기반으로 한 아키텍처를 제공한다. 이 아키텍처를 이해하고 활용함으로써 배치 작업을 효율적으로 처리할 수 있다! 1. Job, Step, Tasklet 개념 - Job: 스프링 배치의 최상위 개념으로, 하나 이상의 Step으로 구성된다. Job은 배치 작업의 실행 단위를 나타냄. 개발자는 Job을 정의하고 구성하여 작업의 흐름을 제어할 수 있다. - Step: Job을 구성하는 작업 단위. 각 Step은 특정한 작업을 수행하는데 필요한 Reader, Processor, Writer 등의 구성 요소를 포함할 수 있음. Step은 순차적으로 실행되며, 필요에 따라 병렬로 실행될 수도 있다. - Taskl..

    Spring Batch - (2)Spring Batch의 필요성과 장점

    그냥 Spring이나 java를 사용하면 대용량 데이터 처리를 못해? chunk의 개념을 그냥 java로 구현해서 사용하면 되는거아니야? 왜 굳이 Spring Batch를 써야돼? 이 글을 보는 사람들은 다들 경험해봤듯이, Spring이나 Java를 사용하여 데이터 처리를 할 수는 있다. 그리고 대용량 데이터 처리라고 해봐야 그냥 데이터 처리를 많이 하면 되는거 아닌가? 또, Spring Batch하면 빼놓을 수 없는 "Chunk" 개념을 직접 Java로 구현하여 사용할 수도 있다. 그렇다면 왜 굳이 Spring Batch를 사용해야 할까??? Spring Batch를 사용하는 이유 1. 표준화된 아키텍처와 모범 사례 Spring Batch는 대규모 배치 처리에 필요한 아키텍처와 모범 사례를 제공함. 이..

    Spring Batch - (1)스프링 배치란?

    최근에 회사에서 난생 처음으로 배치 개발을 해보게 되어서 공부하게 된 내용 + 공부할 내용 + @를 쓸 예정이다 ㅎㅎㅎ 스프링 배치라는 것이 있다는 것은 알고 있었는데(그냥 대용량 데이터 처리를 할 때 쓴다는 것만 알고 있었음) 내가 직접 해보게 될 줄은 몰랐당 해보라고 했을 때는 좀 무서웠지만 막상 해보니 재미도 있고 원래 하던 개발이랑은 좀 색다른 맛이 있어서 아주 좋은 경험이였음! 뭔가 촤라라락 척척척 촤촤촥 되는 느낌? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 해본 사람이라면 알 수도 모를 수도 있는 말이지 않을까 싶네여 Spring Batch란? 스프링 배치(Spring Batch)는 대용량의 데이터를 처리하고, 반복적으로 수행되는 일괄 처리 작업을 지원하는 오픈 소스 프레임워크임. 스프링 배치는 일괄 처리 작..

    SVN - (4)개발을 혼자서 할 수 없는 이유

    물론 개발은 혼자서 할 수 있다. 하지만 어렵다. 1인이 서비스를 만들 수 있다. 하지만 그 서비스는 본인만 사용하는 서비스인가? 아니잖아 결국 서비스가 잘 되고 덩치가 커지면 많은 사람들이 필요해진다. 내가 생각하는 개발을 혼자서 할 수 없는 이유는 다음과 같다. 개발을 혼자서 할 수 없는 이유 1. 복잡성과 다양성 현대 소프트웨어 개발은 매우 복잡하고 다양한 기술과 도구들이 사용된다. 배포만 봐도 요즘은 기본적으로 무중단 배포를 선호한다. 그렇다면 무중단 배포를 위한 로드밸런서 뭐 Nginx. 가상화, 컨테이너 기술에 Docker랑 Kubernetes. CI/CD를 위한 Jenkins나 GitHub Action. 그리고 모니터링을 위한 도구(이건 안써봐서 뭐가 있는지 모르겠음요). 당장 생각나는 것만..

    SVN - (3)SVN 사용법

    SVN - (3)SVN 사용법

    SVN은 다른 VCS(버전 관리 시스템)처럼 GUI와 CLI 모두로 사용이 가능함. 어차피 GUI로 쓰나 CLI로 쓰나 겹치는, 알아야 하는 사용법이 있음. 둘 다 간단하게 알아보고, 중요한 사용법들을 알아보는 방향으로 갈게여 GUI로 사용하는 방법 SVN의 GUI 툴은 여러가지가 있다고 하지만, 지금 간단하게 알아볼 툴은 TortoiseSVN임. 입사 후 막 나는 이클립스에서 SVN을 사용하고 있었는데 이걸 사용하는 사람도 있더라구? 근데 첨에는 그냥 window XP 시절 그냥 파일 탐색기 같이 생겨서 그게 SVN GUI 툴인지 몰랐음 ㅋㅋㅋㅋㅋ 첫인상이 좀 구려보여서 아직 사용은 안해봤음 ㅎㅎ 그리고 내가 알기론 Tortoise가 육지거북이란 뜻인가 그럴거임. 그래서 TortoiseSVN를 보면 귀..

    SVN - (2)SVN의 역사

    CVS란 CVS(Concurrent Versions System)는 1980년대 후반부터 사용되어온 VCS 중 하나였고, CVS는 클라이언트-서버 구조로 이루어져 있음. 클라이언트는 서버로부터 완전한 복사본을 얻을 수 있음. 그러나 CVS는 분산형 버전 관리 시스템이 아닌 중앙 집중형 버전 관리 시스템이기 때문에 대규모 프로젝트에서는 한계가 있었음. SVN의 특징 SVN은 위에서 간단하게 설명한 CVS의 한계를 극복하고자 만들어졌다고 함. SVN(Subversion)은 2000년대 초에 개발되어, CVS를 대체하기 위해 만들어진 VCS임. SVN은 CVS와 비슷한 기능을 제공하면서도, 복잡한 코드 변경을 처리할 수 있는 새로운 방식을 도입하여 대규모 프로젝트에서 더욱 효과적으로 사용될 수 있었음. 방금 ..