목록코딩하는 문과생 (220)
코딩하는 문과생
※ 해당 글은 튜토리얼이 아닌 헷갈리거나 중요한 개념 위주로 정리한 글입니다. [TDD] : 테스트가 주도하는 개발 테스트코드 작성 후(red) 테스트가 통과하는 프로덕트 코드를 작성(green) 이후 리팩토링 진행(refactoring) [단위테스트] : 기능 단위의 테스트 코드를 작성 - 장점 톰캣을 계속내렸다 올릴 필요가 없다. 자동검증이 가능하다. 개발자가 만든 기능을 보호한다. * 테스트코드 작성을 도와주는 프레임워크: JUnit 예제코드) 컨트롤러 내 테스트 코드 작성 @RunWith(SpringRunner.class) //Junit 프레임워크의 SpringRunner라는 클래스를 실행시켜라 @WebMvcTest(controllers = HelloController.class) //@Contr..
※ 해당 글은 튜토리얼이 아닌 헷갈리거나 중요한 개념 위주로 정리한 글입니다. - 스프링 부트 개발 및 빌드를 위한 초기세팅을 위해 지정해야 하는 build.gradle파일이다. - 해당 변수들이 의미하는 바를 잘 이해하지 못했는데, 책과 구글을 통해 정리해보았다. // 해당 프로젝트의 빌드시 의존성 관리를 위한 설정 buildscript { ext { //전역변수 설정 springBootVersion = "2.1.7.RELEASE" } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } //스프링..
1. JDBC란? - 자바에서 DB프로그래밍을 하기위해 사용되는 API - JDBC Driver를 통해 자바와 DB를 연결할 수 있다. 2. 문제점 - 신규 프로세스 개발 중 작성한 ServiceImpl과 xml파일 내 DB쿼리에 문제가 없어보이지만, 계속해서 에러발생 - 로그 확인 결과 Service쪽에서 저장된 값을 받아오지 못해 NullPointException 발생 - 그러나, 로그에 찍힌 Select쿼리는 조회값 정상 확인 *** 즉, 조회 결과를 자바에서 받지를 못함 *** 3. 대처 - Service측에서 Insert는 정상적으로 작동, Select문만 에러 발생 - 테이블 자체를 Drop하고 char(2)부분을 varchar2(1)로 수정해 새로 생성 - 정상 작동 확인 4. 이유? - c..
1. 옵티마이저와 실행계획 - 옵티마이저 : 데이터 딕셔너리에 있는 통계정보를 활용해 예상되는 비용을 산정, 최저비용의 계획을 선택해 SQL을 실행시킨다. * 힌트를 부여해 실행계획을 변경시킬 수 있다. * PLAN_TABLE을 조회해 실행계획을 볼 수 있다. - 종류: 규칙기반 or 비용기반(default)으로 실행계획 수립 - 옵티마이저 엔진 Query Transformer: sql문을 효율적으로 실행하기 위해 옵티마이저가 변환한다. Estimator: SQL실행비용을 계산 Plan Generator: 실행계획 수립 2. 인덱스 - 특징 인덱스는 정렬되어 있다. 여러 개의 칼럼으로 구성 인덱스 구조는 Root Block, Branch Block, Leaf Block으로 구성되어 있다. Leaf Blo..