본문 바로가기

전체글115

Statement vs PreparedStatement 목차개요JDBC API 인터페이스 2-1. Statement2-2. PreparedStatement결론1. 개요Statement와 PreparedStatement 인터페이스는 모두 SQL 쿼리를 실행하는 데 사용된다. 하지만, 두 인터페이스의 차이를 보안과 성능의 관점에서 살펴보자.2. JDBC API 인터페이스두개의 인터페이스는 어떻게 동작할까?쿼리 문장 분석컴파일실행1. Statement문자열 기반 SQL 쿼리를 실행한다.public void insert(PersonEntity personEntity) { String query = "INSERT INTO persons(id, name) VALUES(" + personEntity.getId() + ", '" + personEntity.getName().. 2023. 5. 22.
단위테스트 vs 통합테스트 vs 인수테스트 목차개요단위 테스트(Unit Test)통합 테스트(Integration Test)인수 테스트(Acceptance Test)결론1. 개요테스트를 크게 3가지 분류로 나눌 수 있는데 가장 많은 범위를 차지 하고 있는 단위 테스트 통합 테스트, 인수 테스트 순으로 위 그림 처럼 나타낼 수 있다.이는 테스트 케이스의 개수라고 보면 될 것이고 코드 범위로 따지면 단위테스트가 가장 작고 인수 테스트가 가장 큰 것을 볼 수 있다.2. 단위 테스트(Unit Test)단일 서버 / 단일 프로세스 / 단일 쓰레드에서 돌아가는 테스트를 말한다.테스트에 Disk I/O가 있어서는 안되고 Blocking call이 있어서도 안된다.매우 간단하고 명확해야 하며 기본적으로 테스트를 위한 입력 값을 주어 그에 대한 함수의 출력 값이.. 2023. 5. 16.
테스트코드는 무엇이고 왜 작성해야 할까요? 목차테스트코드란?테스트 코드는 왜 작성해야 할까?테스트 코드의 단점결론1. 테스트코드란?소스 코드가 의도된 대로 정확히 동작하는지 검증하고 오류를 찾는 절차에 사용된다.즉, 특정 기능이 제대로 작동하는지 확인하고, 변경사항이나 추가 기능이 기존 기능에 영향을 미치지 않는지 검증하는데 도움을 준다.2. 테스트 코드는 왜 작성해야 할까?(도서) 구글 엔지니어는 이렇게 일한다. 11장구글도 초창기에는 엔지니어에 의한 자동 테스트를 그다지 중요하게 생각하지 않았다. 그러나 2005년에 구글 웹 서버(GWS) 규모와 복잡성이 무척 커지면서 생산성이 급속도로 떨어지는 경험을 했다. GWS는 구글 검색 쿼리를 제공하는 웹 서버로, 구글 검생에 있어서는 마치 공항의 관제 시스템만큼 중요한 역할을 하는 서비스이다. 릴리.. 2023. 5. 15.
__GC 방식에는 어떤 것들이 있을까?__ 목차개요Serial GCParallel GCParallel Old GC(Parallel Compacting GC)Concurrent Mark & Sweep GC(이하 CMS)G1(Garbage First) GC결론 1. 개요Old 영역은 기본적으로 데이터가 가득 차면 GC를 실행하는데 이때 GC방식에 따라 처리 절차가 달라진다. 어떤 GC방식이 있는지 살펴보고 이해해보자.2. Serial GC운영서버에서 절대 사용하면 안되는 방식이며 데스크톱의 CPU 코어가 하나만 있을때 사용하기 위해 만든 방식이다.하나의 쓰레드로 GC를 실행하기에 Stop-The-World 시간이 길어지므로 애플리케이션의 성능이 많이 덜어진다.Serial GC는 적은 메모리와 CPU 코어 개수가 적을 때 적합한 방식이다.3. Para.. 2023. 5. 4.
GC**(GarbageCollection)**는 어떻게 동작하며 왜 필요할까? 목차GC는 무엇인가?GC는 왜 필요할까?GC 알고리즘3-1. Reference Counting3-2. Mark And SweepGC는 어떻게 동작하는가?4-1. 동작구조4-2. Minor GC랑 Major GC는 무슨 차이지?4-3. young영역과 old영역 왜 나눠놨지?5. 결론1. GC는 무엇인가?위키백과를 보면 다음과 같이 나와있다.즉, 동적 할당된 메모리 영역 가운데 더 이상 사용할 수 없게 된 영역을 탐지하여 자동으로 해제해준다.2. GC는 왜 필요할까?GC를 사용하면 수동으로 메모리 관리를 했던 여러 작업이나 에러들을 방지할 수 있다.장점메모리 누수를 막을 수 있다해제된 메모리에 접근을 막을 수 있다.해제한 메모리 또 해제하는 경우를 막을 수 있다단점GC 작업은 순수 오버헤드개발자는 언제 G.. 2023. 5. 2.
Maven vs Gradle 목차빌드 관리 도구란?MavenGradleMaven vs Gradle결론 1. 빌드 관리 도구란?소프트웨어 개발에서 자동화된 빌드 프로스세스를 지원하기 위해 사용되는 도구이다.라이브러리 및 종속성을 관리하며 일반적으로 개발에 필요한 외부 라이브러리들을 자동으로 다운로드하고 업데이트하는 역할이다.2. MavenApache의 Ant 대안으로 2004년 출시.빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml에 명시외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한다음, 로컬시스템의 캐시에 모두 저장. 3. GradleAnt와 Maven의 장점을 모아 2012년 출시.Android 빌드 도구로 채택 됨.Groovy 스크립트를 활용한 빌드 관리 도구.멀티 프로젝트에 사용.. 2023. 4. 27.