| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 백준
- Elasticsearch
- 자바
- 알고리즘
- framework
- 코드
- 코딩
- 개발자
- 애자일기법
- ES
- Baekjoon
- Spring
- 애자일프로그래밍
- 스프링
- 프레임워크
- 그리디알고리즘
- 읽기쉬운코드
- 그리디
- spring boot
- 코딩테스트
- kotlin
- 엘라스틱서치
- 개발
- API
- Java
- JPA
- 클린코드
- cleancode
- 데이터베이스
- database
- Today
- Total
목록Framework (25)
튼튼발자 개발 성장기🏋️
최근 개인적으로 프로젝트 하느라 H2 데이터베이스를 연동해보았다. H2는 굉장히 생소했지만 테스트 용으로 많이들 사용하는 것 같다. "인메모리 데이터베이스"로 분류되어 있으며 용량이 작고 속도가 빠르다는 장점을 가지고 있다. 이 H2를 spring MVC에 연동하는 것이 굉장히 힘들었다. mySql이나 몽고와는 살짝 다른 건지.. 아니면 내가 spring을 공부하는 단계라서 그런건지 너무 어려웠다. 약 3일동안 삽질해서 연동을 해보았다. 가장 먼저 연동을위한 repository를 dependency 걸어주자. 참고로 나는 Gradle Build tool을 사용해서 maven을 사용한다면 pom.xml에 알맞은 버전을 걸어주면 된다. dependencies { compile group: 'org.sprin..
repository 프록시는 메소드 명으로부터 query를 가지고 오는 방법이 두 가지가 있다. 메소드 명으로부터 query를 직접 가지고 오는 방법. 수동적으로 정의된 query를 가지고 오는 방법. 이 두 가지 방법의 선택은 스토어에 따라 달라질 수 있다. 실제 어떤 query가 만들어 지는지는 어떠한 전략(?)이 있다. CREATE query 메소드의 이름을 가지고 query를 만든다. well-known prefix를 모두 제거하고 나머지 이름 부분 가지고 파싱해서 query를 만든다. (ex. findById()) USE_DECLARED_QUERY 선언 되어있는 query를 찾는다. 찾지 못하면 예외가 있으니 예외처리를 해주어야한다. 어노테이션을 사용하여서 어딘가에 정의되어 있을 수 있다. CR..
이전 글에서 query method를 만드는 4 step에 대해 알아 보았다. Repository를 상속한 인터페이스 만들기 query method 정의하기 String Data JPA 활성 시키기 주입 받아서 사용하기 상위 단계 중에 1step에 대해 알아보려고 한다. 보통 Repository와 CrudRepository와 PagingAndSortingRepositoryRepository 그리고 JpaRepository 중에 하나를 상속을(extends)를 받아 사용할텐데, 이 것을 어노테이션을 사용할 수도 있다. 바로 이런 식으로. @NoRepositoryBean interface MyBaseRepository extends Repository { Optional findById(ID id); S s..
사실 spring에서 MyBatis를 먼저 배우게 되는데 나는 생략하고 가장 핫한 JPA를 공부해볼까 한다. MyBatis를 경험해본 경과 상당히 귀찮고 반복되는 로직과 sql 작성으로인한 오타 등으로 나를 힘들게 했던 기억이 난다. JPA는 Java Persistence API로 RDB 관계를 표현하는 자바의 API로써 spring Data JPA는nce API로 RDB 관계를 표현하는 자바의 API로써 spring Data JPA는이러한 JPA에 대한 저장소를 서포트한다. 이 spring Data JPA는 JPA Data Source에 접근해야하는 프로그램 개발에 용이할 수 있다고 정의되어 있다. JPA reference는 다음 문서를 참고하자. 예제도 구할 수 있으니 꼭 참고하자. Spring Da..
Database를 연동하게 된다면, 우리는 코드 상에서 query를 날리는 로직이 필요할 것이다. 그렇다면 우리가 해야할 일은 다음과 같을 것이다. 드라이버 로드 -> connection 생성 (혹은 DB pool 사용) -> DB 연결 -> sql auery 실행 -> 자원해제 데이터베이스에 접근 할 때마다 상기 내용과 같은 작업이 반복적으로 이루어져야만 한다는 이야기다. 이를 해결하기 위해 JDBC를 사용하는 것이다. spring JDBC를 사용하기 위해 spring-jdbc maven lib이 필요하다. 찾는 방법은 이전 글의 maven Repository를 참고하자. #12 : spring 관련 docs 및 API 참고 자료 spring을 사용하려면 spring docs는 필수로 보아야하고, 어떤..
spring을 사용하려면 spring docs는 필수로 보아야하고, 어떤 라이브러리들이 있는지, 어떻게 가져다 사용하는지 정도는 기본으로 알고 있어야한다. 그래서 spring 관련 홈페이지를 끄적여본다. 1. spring docs : https://docs.spring.io/spring/docs/ 사용하는 버전에 맞는 docs 참고할 것. 2. MyBatis : https://mybatis.org/mybatis-3/ko/ 3. database reference : https://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm 4. jQuery docs : https://api.jquery.com/ 5. W3C : https://www.w3schools.c..
나는 실제로 서버 개발자로서 한 직장에 다니고있다. 여러 서버를 만져보았지만 validation check(유효성 검사)를 하지 않는 서버는 단 하나도 없었다. client가 요청한 데이터를 server는 필히 유효성을 체크해야 하기 때문이다. 직장에서 가장 많이 들었던 이야기 중 하나는 이것이다. "서버는 그 어떠한 것도 믿으면 안된다." 우린 서버에 요청이 들어오면 항상 하는 일 중 하나가 바로 유효성 검사라는 것이다. spring에서는 Controller에서 유효성 검사를 하게되는데, BindingResult라는 녀석을 제공해준다. 코드를 보자. @RequestMapping("/") public ModelAndView home(Member member, BindingResult bindingResu..
우리는 때때로 요청한 URL과 다른 결과가 나올 때가 종종있다. 접속할 URL을 치고 엔터를 땅! 치는 순간 URL이 바뀌면서 다른 페이지가 뜰 수 있게 설정할 수 있다는 것이다. 이것이 바로 리다이렉트(redirect) 기능이다. 특히 HTTP 통신에서는 서버의 응답으로 302 status가 발생했을 때, Location header 값으로 리다이렉트를 많이 사용하는데 지금 다룰 리데이렉트는 조금 다르다. 다음 코드를 보자. @RequestMapping("/") public String home(HttpServletRequest request) { String id = request.getParameter("id"); if(null != id && id.equals("abc123")) { return ..
