본문 바로가기

전체 글

(217)
효과적인 애자일 방식 EoA (Essence of Agility) 소개불확실성에 대응하는 전략: EoA는 불확실성이 높은 상황에서 효과적인 전략을 제시합니다.핵심 원리: 애자일의 본질적인 원리를 이해하고, 이를 바탕으로 자신의 상황에 맞는 실천법을 디자인해야 한다고 강조합니다.애자일 핵심 원리1. 중복을 허용하기 (Redundancy)설명: 불확실한 상황에서는 한 가지 방법에 의존하기보다는 여러 대안을 마련하여 문제 발생 시 대체할 수 있는 방안을 준비합니다.예시: 스타트업에서 한 명만 특정 작업을 할 수 있게 두는 것은 위험합니다. 중복 허용을 통해 더 많은 사람이 같은 작업을 할 수 있게 하여 큰 손실을 방지합니다.2. 문제를 빠르게 감지하기 (Detect early)설명: 문제를 조기에 발견하고 대응하여 손실을 최소화합..
[Spring Batch] 메타 테이블에 대해 알아보자! 스프링 배치(Spring Batch)는 대규모 데이터 처리를 위한 프레임워크로, 작업(Job)과 단계(Step)를 기반으로 데이터를 읽고 처리하고 쓰는 기능을 제공합니다. 이 과정에서 작업의 실행 상태를 추적하고 관리하기 위해 메타 테이블을 사용합니다. 메타 테이블은 작업 실행의 상태와 관련된 다양한 정보를 저장하는데 사용됩니다.주요 메타 테이블BATCH_JOB_INSTANCE구분내용용도작업의 논리적 단위를 나타내는 테이블입니다. 각 작업(Job)의 인스턴스(Instance) 정보를 저장합니다.주요 컬럼JOB_INSTANCE_ID: 작업 인스턴스의 고유 IDJOB_NAME: 작업 이름JOB_KEY: 작업 인스턴스를 구분하기 위한 키 (주로 파라미터 기반의 직렬화)BATCH_JOB_EXECUTION구분내용..
[인공지능] 트랜스포머(Transformer)란 무엇인가? Transformer는 자연어 처리(NLP)와 기타 시퀀스 기반의 작업에서 주로 사용되는 딥러닝 모델의 일종입니다. 2017년 구글의 연구팀이 발표한 논문 "Attention is All You Need"에서 처음 소개되었습니다. Transformer는 그 이전에 주로 사용되던 순환 신경망(RNN)과 장단기 기억 네트워크(LSTM)의 한계를 극복하기 위해 설계되었습니다.Transformer의 주요 구성 요소 Self-Attention Mechanism (자기 주의 메커니즘): 입력 시퀀스의 각 요소가 다른 모든 요소들과의 관계를 학습하여 중요한 정보를 선택적으로 집중할 수 있게 합니다. 이 메커니즘 덕분에 Transformer는 병렬 처리가 가능하며, 긴 시퀀스의 입력에서도 효과적으로 학습할 수 있습니다..
정적 분석(Static Analysis) & 동적 분석(Dynamic Analysis)에 대해 알아보기 정적 분석(Static Analysis)과 동적 분석(Dynamic Analysis)은 소프트웨어를 분석하는 두 가지 주요 방법입니다. 이들 방법은 소프트웨어의 코드 품질, 보안성, 성능 등을 평가하는 데 사용됩니다.정적 분석(Static Analysis)정적 분석은 프로그램을 실행하지 않고 코드 자체를 분석하는 방법입니다. 주로 소스 코드 또는 바이너리 코드를 대상으로 합니다. 주요 특징구분내용 코드 검사 코드의 문법, 스타일, 잠재적 버그, 보안 취약점 등을 찾기 위해 사용됩니다. 이는 코드의 동작을 이해하지 않고도 가능한 일입니다. 도구 사용 정적 분석을 수행하는 다양한 도구들이 있습니다. 예를 들어, SonarQube, Coverity, PVS-Studio 등이 있습니다. 자동화 정적 분석 도구는..
HikariCP Oracle 데이터베이스와의 커넥션 유효성을 검사 성능 최적화!! oracle.jdbc.defaultConnectionValidation 설정은 HikariCP (JDBC 커넥션 풀링 라이브러리)에서 Oracle 데이터베이스와의 커넥션 유효성을 검사할 때 사용하는 설정 입니다. 기본적으로, HikariCP는 커넥션 풀에 있는 커넥션이 여전히 유효한지 확인하기 위해 여러 방법을 제공합니다. SOCKET: 소켓을 통해 연결 상태를 검사합니다.FAST: 기본적인 유효성 검사로, 연결이 유효한지 간단히 확인합니다.METADATA: 메타데이터를 사용하여 연결을 검사합니다.TABLE: 특정 테이블에 대해 간단한 쿼리를 실행하여 연결을 검사합니다.설정 방법구분내용 SOCKET 위에서 설명한 것처럼, SOCKET은 소켓을 통해 연결 상태를 검사합니다. 이는 네트워크 레벨에서 연결이 ..
[스크럼] 스크럼(Scrum)이란 무엇인가? 스크럼(Scrum)은 애자일(Agile) 방법론의 하나로, 소프트웨어 개발 프로젝트를 효율적으로 관리하고 협력하기 위해 사용되는 프레임워크입니다. 스크럼은 주로 반복적이고 점진적인 방식으로 제품을 개발하며, 팀의 자율성과 책임감을 강조합니다. 스크럼 아티팩트스크럼 아티팩트(Scrum Artifacts)는 스크럼 프레임워크 내에서 사용되는 주요 도구와 산출물로, 팀의 진행 상황을 시각화하고 투명성을 제공하여 지속적인 개선을 가능하게 합니다. 주요 아티팩트는 제품 백로그(Product Backlog), 스프린트 백로그(Sprint Backlog), 그리고 인크리먼트(Increment)입니다.구분내용 제품 백로그 (Product Backlog) 제품 백로그는 제품 개발에 필요한 모든 요구사항과 기능, 수정 사..
[경제 상식] 금융투자소득세(금투세)이란 무엇인가? 금융투자소득세(금투세)는 금융투자상품에서 발생하는 소득에 대해 부과되는 세금을 의미합니다. 주로 주식, 채권, 펀드 등 금융투자상품에서 얻는 이익에 대해 과세하는 세제입니다. 금투세는 투자 소득에 대한 과세 형평성을 높이고 세수 확보를 목적으로 도입됩니다.금투세의 주요 내용구분내용과세 대상주식, 채권, 펀드, 파생상품 등 다양한 금융투자상품이 과세 대상에 포함됩니다.이자, 배당소득, 매매차익 등이 과세 대상 소득에 포함됩니다.과세 기준일정 금액 이상의 금융투자소득에 대해서 과세가 이루어집니다.소득세법에 따라 금투세 과세 기준 금액이 정해지며, 초과분에 대해 과세합니다.세율금투세의 세율은 과세 대상 소득의 규모에 따라 다를 수 있습니다.일반적으로 일정 금액 이하의 소득에 대해서는 낮은 세율이 적용되고, 그..
ZGC 기본 개념 알아보기 ZGC (Z Garbage Collector)는 Java Virtual Machine (JVM)에서 사용되는 최신의 가비지 컬렉터 중 하나로, 대규모 애플리케이션에서의 낮은 지연 시간과 높은 처리량을 목표로 설계되었습니다. ZGC는 Java 11에 처음 도입되었으며, 계속해서 개선되고 있습니다. ZGC의 주요 특징과 작동 방식을 상세히 설명드리겠습니다.ZGC의 주요 특징저지연(Garbage Collection Pause Time): ZGC는 가비지 컬렉션으로 인한 지연 시간을 매우 짧게 유지하는 것이 특징입니다. 일반적으로 수 밀리초 이내로 유지되며, 이는 대규모 애플리케이션에서 매우 중요한 성능 요소입니다.대규모 힙 지원: ZGC는 테라바이트 단위의 대규모 힙 메모리까지 지원합니다. 이는 대용량 데이터..
[테스트] JaCoCo란 무엇인가? JaCoCo(Java Code Coverage)는 Java 애플리케이션의 코드 커버리지를 측정하는 데 사용되는 오픈 소스 도구입니다. JaCoCo는 코드의 어느 부분이 테스트되고, 어느 부분이 테스트되지 않는지에 대한 정보를 제공합니다. 이를 통해 테스트의 완성도를 평가하고, 테스트 커버리지를 개선할 수 있습니다.JaCoCo의 주요 기능코드 커버리지 측정: JaCoCo는 클래스, 메서드, 라인, 분기, 명령어 수준에서 코드 커버리지를 측정합니다.리포트 생성: HTML, XML, CSV 형식의 다양한 리포트를 생성하여 코드 커버리지 결과를 시각적으로 제공합니다.통합: Maven, Gradle, Ant, Jenkins와 같은 빌드 도구 및 CI/CD 시스템과 쉽게 통합할 수 있습니다.바이트코드 계측: JaC..
[TDD] UnitTest(단위 테스트)란 무엇인가? 단위 테스트(Unit Test)는 소프트웨어 개발 과정에서 개별적인 작은 코드 단위, 즉 "유닛(Unit)"을 독립적으로 검증하는 테스트 방법입니다. 여기서 유닛은 일반적으로 하나의 함수, 메서드, 클래스 또는 모듈을 의미합니다. 단위 테스트는 해당 유닛이 올바르게 작동하는지 확인하는 데 중점을 두며, 소프트웨어 품질을 유지하고 버그를 조기에 발견하는 데 중요한 역할을 합니다.단위 테스트의 주요 특징독립성:단위 테스트는 독립적으로 실행되어야 하며, 다른 테스트나 외부 시스템(예: 데이터베이스, 네트워크 등)에 의존하지 않아야 합니다.작은 범위:하나의 작은 코드 단위에 집중하여 테스트합니다. 이는 큰 시스템의 복잡성을 줄이고, 버그를 쉽게 식별할 수 있도록 돕습니다.자동화:단위 테스트는 자동화되어 자주 반..