목록분류 전체보기 (181)
초보개발자 긍.응.성
2장 코틀린 기초 💡 다루는 내용 함수, 변수, 클래스, enum, 프로퍼티를 선언하는 방법 제어 구조 스마트 캐스트 예외 던지기와 예외 잡기 2.1 기본 요소: 함수와 변수 Hello World fun main(args: Array) { println("Hello, World!") } 함수선언시 fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. 클래스 안에 함수를 넣어야 할 필요가 없다. 최상위 수준에 함수를 선언 가능하다. 배열도 클래스다. 세미콜론을 붙이지 않아도 된다. 문(statement)과 식(expression) fun max(a: Int, b: Int): Int { if (a > b) a else b } 코틀린에서 if 는 식(expression)이다. 식은 값을 ..
Mockito 홈페이지를 정리하였습니다. Mockito란? mocking 프레임워크이다. 깔끔하고 간결한 API로 아름다운 테스트를 작성할 수 있다. mockito로 만든 코드는 가독성이 뛰어나며 깔끔한 검증 에러를 생성할 수 있다. stackoverflow가 뽑은 최고의 Java mocking 프레임워크. Feature EasyMock, jMock에 비해 더 간결하며 직관적인 접근법을 사용한다. EasyMock vs. Mockito 원하는 것을 검증할 수 있다 expect-run-verify 라이브러리(EasyMock)는 관련없는 인터렉션들에 대하여 관리해야한다 expectation이 assertion과 동일한 취급을 받는다 모든 과정을 stubbing 하여야 한다 Mockito는 stub-run-as..
테스트 더블은 영화 촬영 시 위험한 역할을 대신하는 스턴드 더블이라는 단어에서 비롯되었다. 테스트하려는 객체와 연관된 객체를 사용하기가 어렵고 모호할 때 대신해 줄 수 있는 객체를 의미한다. Dummy 인스턴스화 된 객체가 필요하지만 기능이 필요하지 않은 경우 빈 implementation을 가진 Wrapper 클래스로 이해하면 된다. Fake 복잡한 로직이나 객체 내부에서 필요로 하는 다른 외부 객체들의 동작을 단순화하여 구체화한 객체 실제 클래스에 비해 간단하게만 동작하게 implements 된 객체라고 이해하면 됨. Stub Dummy 객체가 실제로 동작하는 것처럼 보이게 만들어 놓은 객체 테스트에서 호출된 요청에 대해 미리 준비된 결과를 제공한다. Spy 실제 객체처럼 동작시킬 수 있고, 필요한 ..
이 글은 스스로 회고하기 위한 글이며, 제가 개발했던 배치의 간단한 쿼리에서 인덱스 사용 여부로 엄청난 성능 차이를 몸소 느끼게 되어 작성하게 되었습니다. 상황 기존 데이터를 조회해 계산된 결과를 새로운 컬럼에 부여하는 마이그레이션 잡을 개발하였습니다. Spring Batch를 통해 개발하였고, Reader에서 데이블 내 모든 데이터를 페이징으로 조회, Writer에서 조회된 데이터를 계산하여 계산된 값으로 해당 튜플에 업데이트하는 간단한 배치 잡이었습니다. 빠른 마이그레이션을 위해 Writer 단계에서 10개의 스레드를 통해 계산 및 UPDATE를 수행하도록 한 상태였습니다. 마이그레이션 데이터의 크기는 환경마다 달랐으며 A환경 5만건, B환경 25만건 정도 존재하였습니다. 방심했던 이유 테스트 환경에..
이 글은 Spring Batch의 Meta-Data Schema를 참고하여 작성하였으며, 개인적으로 스프링 배치에 사용하는 메타 테이블에 대해 공부하며 정리한 글입니다. 잘못된 내용이 있다면 짚어주시면 감사하겠습니다. ERD Spring Batch의 메타 데이터 테이블들은 배치의 도메인 객체들과 거의 정확히 일치한다. JobExecution와 BATCH_JOB_EXECUTION 테이블과 같이 말이다. DDL 스크립트 이 메타 데이터 테이블의 DDL은 org.springframework.batch.core 패키지 하위에 schema-*.sql 파일로 존재한다. 이때 *는 지원하는 DB 이름이다. 스프링 배치 버전 업으로 메타 데이터를 마이그레이션 해야 할 시 org/springframework/batch/..
Spring으로 업무를 수행하지만, Java라는 언어에 대해 중간중간 구멍이 나있다고 느껴 이 책을 다시 보게 되었다. 이곳에 기록하는 것들은 정말 소소하지만 내 머릿속에 잘 들어오지 않았던 것들이거나, 잘 모르고 있어 유심히 보게 된 것들에 대한 것이다. JDK, JRE, JVM JDK : Java Development Kit (자바 개발 도구) JRE + 개발에 필요한 실행파일(jdk bin 디렉터리엔 javac.exe, java.exe, javap.exe 등의 실행파일이 존재한다) JRE : Java Runtime Environment (자바 실행 환경) JVM + 클래스 라이브러리 (Java API) JVM : Java Virtual Machine (자바 가상 머신) JVM의 메모리 구조 메서드 ..