본문 바로가기
반응형

springboot34

[소경관] : 회원가입과 로그인 로직 수정하기 회원가입과 로그인 로직을 간단하게 수정했다. 원래 Repository 부분을 JpaRepository를 상속 받아 사용하지 않고 아래와 같이 별도의 클래스를 만들어 Spring Bean을 등록하고 EntityManage 의존성을 주입받아 사용했다. public List findById(String userId) { return em.createQuery("select m from UserEntity m where m.userId = :userId", UserEntity.class) .setParameter("userId", userId) .getResultList(); } public List findByEmail(String userEmail) { return em.createQuery("select .. 2022. 6. 2.
[JPA] : Flush(), 플러시에 대해서.. 플러시, flush 간단 설명 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영 변경 사항과 데이터베이스를 맞추는 것으로 쿼리를 날려주는 것이라고 보면 된다. 플러시가 발생하면 어떻게 되나? 변경 감지가 일어나고 수정된 엔티티가 쓰기 지연 SQL 저장소에 등록한다. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다. ( 등록, 수정, 삭제 쿼리 등) 플러시가 발생된다고 Commit 되는 것은 아니다. 영속성 컨텍스트를 어떻게 플러시하나? em.flush() 직접 호출한다. 트랜잭션을 커밋하면 자동으로 호출된다. 플러시를 실행해도 1차 캐시가 지워지지는 않고 쓰기 지연 SQL 저장소에 있는 것들이 데이터베이스에 반영이 되는 과정이다.데이터베이스에 쿼리가 즉시 나가고 그 다음에 Commit된다. Me.. 2022. 3. 23.
[TIL] : 145 ​일일 배움을 위한 Today I Learned ! JPA JPA를 h2데이터베이스에 연동해서 테스트 해 봤다. 강의를 듣다가 JPQL에 대해서도 언급을 했는데 뒤에서 다시 배운다고 한다. 2022.03.20 - [Data Base/JPA] - [JPA] : JPA 간단 개발과 JPQL 확인하기 예약과 발행이 동시에 실행되서.. 00시가 지나서 등록이 되었다. 2022. 3. 21.
[JPA] : JPA 간단 개발과 JPQL 확인하기 데이터베이스에 데이터를 넣어 테스트를 하는 강의를 진행했다. @Entity public class Member { @Id private Long id; private String name; 객체와 테이블을 생성하고 매핑을 먼저 해준다. Entity는 JPA가 관리할 객체이고 Id는 PK설정으로 데이터베이스 PK와 매핑된다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // 팩토리는웹 서버가 올라오는 시점에 DB당 하나만 생성된다. EntityManager em = emf.createEntityManager(); // 고객의 요청이 올 때 마다 썼다가. 버렸다가. 반복해서 동작한다. 때문에 쓰레드간에 공유를 하면 안.. 2022. 3. 20.
[TIL] : 140 일일 배움을 위한 Today I Learned ! Spring Boot 스프링 부트 강의를 진도나갔고, 학교에서 배운 내용도 간단하게 정리해 봤다. 2022.03.15 - [Framework/Spring Boot] - [Spring Boot] : ComversionServcie 사용해 보기 2022.03.15 - [Framework/Spring Boot] - [Spring Boot] : myBatis와 JPA 간단 정리 2022.03.15 - [Framework/Spring Boot] - [Spring Boot] : 스프링에 Converter 적용하기 2022.03.15 - [Framework/Spring Boot] - [Spring Boot] : 뷰 템플릿에 컨버터 적용하기 Kubernetes 쿠버네티.. 2022. 3. 15.
[Spring Boot] : 스프링에 Converter 적용하기 이번 강의에서는 웹 애플리케이션에 Converter를 적용해 본다. @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { registry.addConverter(new StringToIntegerConverter()); } } WebMvcConfigurer가 제공하는 addFormatters()를 사용해 추가하고 싶은 컨버터를 등록하면 스프링이 ConversionService에 컨버터를 추가해 주게 된다. 스프링에서도 수 많은 기본 컨버터들을 제공하기 때문에 StringToIntegerConverter가 없어도 잘 작동한.. 2022. 3. 15.
[TIL] : 139 일일 배움을 위한 Today I Learned ! R 데이터 프레임을 다루어보고 데이터 개념을 이해하기 위해 예제 파일을 통해 행, 열을 정리하고 그래프를 출력해 봤다. 2022.03.14 - [프로그래밍언어/R] - [R] : 데이터 프레임 다루기(2) 2022.03.14 - [프로그래밍언어/R] - [R] : 데이터 프레임 다루기(3) 2022.03.14 - [프로그래밍언어/R] - [R] : 데이터 개념 이해하기(1) 2022.03.14 - [프로그래밍언어/R] - [R] : 데이터 개념 이해하기(2) 2022.03.14 - [프로그래밍언어/R] - [R] : 데이터 개념 이해하기(3) Spring Boot 스프링 타입 컨버터에 대해 간단하게 코딩하고 조금 더 진화된 버전이 있다는 것을 공부했다. .. 2022. 3. 14.
[TIL] : 136 일일 배움을 위한 Today I Learned ! R R언어의 기초를 공부하고 있다. 데이터 단위나, 벡터에 대해 공부하고 있다. 지금은 데이터 프레임 부분을 실습해 봐야 한다. 2022.03.11 - [프로그래밍언어/R] - [R] : 표로 데이터 정리하기 2022.03.11 - [프로그래밍언어/R] - [R] : 데이터 프레임 다루기(1) Spring Boot 예외 처리 컨트롤러를 분리하는 것을 실습했다. 2022.03.11 - [Framework/Spring Boot] - [Spring Boot] : @ControllerAdvice실습 공부 2022. 3. 11.
[Spring Boot] : @ControllerAdvice실습 공부 @ControllerAdvice @ExceptionHandler를 사용해 예외를 처리했지만 정상 코드와 예외 처리 코드가 하나의 컨트롤러에 있어서 분리하는 수업을진행했다. @Slf4j @RestControllerAdvice(basePackages = "hello.exception.api") public class ExControllerAdvice { @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(IllegalArgumentException.class) public ErrorResult illegalExHandler(IllegalArgumentException e) { log.error("[exceptionHandler] ex", e); return.. 2022. 3. 11.
[TIL] : 128 일일 배움을 위한 Today I Learned ! Docker 도커 스웜 모드와 스웜 클래식에 대해 공부하고 있다. 2022.03.03 - [Server & System/Docker] - [Docker] : 도커 파이썬 라이브러리 2022.03.03 - [Server & System/Docker] - [Docker] : 도커 스웜을 사용하는 이유 2022.03.03 - [Server & System/Docker] - [Docker] : 스웜 클래식과 도커 스웜 모드 2022.03.03 - [Server & System/Docker] - [Docker] : 도커 스웜 모드 2022.03.03 - [Server & System/Docker] - [Docker] : 도커 스웜 모드의 구조 Spring Boot.. 2022. 3. 3.
[TIL] : 122 일일 배움을 위한 Today I Learned ! Spring Boot 서블릿 예외 처리에 대해 공부했다. 오류 화면을 제공하고 오류 페이지 작동 원리와 필터, 인터셉터에 대해 실습을 진행했다. 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 예외 처리 오류 화면 제공 기능 구현하기 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 예외 처리 오류 페이지 작동 원리 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 예외 처리 필터 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 인터셉터 예.. 2022. 2. 25.
[TIL] : 119 일일 배움을 위한 Today I Learned ! Spring Boot 스프링 부트 공부를 했다. 서블릿 HTTP 세션을 활용해 로그인을 처리했고, 세션을 활용해 타임 아웃이나 설정하기도 한다. 2022.02.22 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 HTTP 세션을 활용해 로그인 처리하기(1) 2022.02.22 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 HTTP 세션을 활용해 로그인 처리하기(2) 2022.02.22 - [Framework/Spring Boot] - [Spring Boot] : Session TimeOut 설정하기 2022.02.22 - [Framework/Spring Boot] - [Sprin.. 2022. 2. 22.
[회고] : 22년 2월 이야기 1. 나와 나를 비교하는 회고 2. 하고 싶은 것이 늘었다. 3. 열심히 하지 않았다. 4. 전체적으로 공부하는 습관을 다시 한 번 잡고 가는 시기 5. TO-DO-LIST 6. 3월에 나는 어떤 공부를 할 것인지 7. 이상하게 요즘 너무 끌리는 게 있다. 8. 작년 딱 오늘, 내가 글을 쓰는 지금 이 날, 1. 나와 나를 비교하는 회고 방학의 끝이자 곧 입학해서 프로그래밍을 배운지 1년이 되는 날이 오고 있다. 2월의 회고는 나와 나를 비교하는 회고가 될 것이다. 1월과 비교하고 앞으로 올 3월과 비교할 것이다. 비교를 통해 얼마나 달라지지 않았고 얼마나 달라질 것인지에 대해 다시 한 번 생각을 해보는 회고가 될 것이다. 2. 하고 싶은 것이 늘었다. 1월과 2월을 비교했을 때 가장 먼저 머릿속에 떠오.. 2022. 2. 22.
[TIL] : 118 일일 배움을 위한 Today I Learned ! Docker 도커 컨테이너 CPU 제한과 이미지에 대해서, 그리고 이미지를 생성하는 방법을 공부했다. 2022.02.21 - [Server & System/Docker] - [Docker] : 도커 컨테이너 CPU 제한 / --cpu-shares 활용하기 2022.02.21 - [Server & System/Docker] - [Docker] : 도커 컨테이너 CPU 제한 / --cpuset-cpu 활용하기 2022.02.21 - [Server & System/Docker] - [Docker] : 도커 컨테이너 CPU 제한 / --cpu-period, --cpu-quota 활용하기 2022.02.21 - [Server & System/Docker] - [D.. 2022. 2. 21.
[TIL] : 115 일일 배움을 위한 Today I Learned ! JavaScript 30일 챌린지 오늘은 22회차 진행을 했다. 2022.02.18 - [Project/JavaScript 30일 챌린지] - [JavaScript 30일 챌린지] : 22일차 Spring Boot 쿠키와 세션에 관한 내용을 진행했다. 로그아웃하는 방법도 다뤘다. 2022.02.18 - [노트/오류 노트] - [오류 노트] : Error while powering on: Virtualized performance counters require at least one available functioning counter. Module 'VPMC' power on failed. Failed to start the virtual machine... 2022. 2. 18.
[TIL] : 113 일일 배움을 위한 Today I Learned ! Docker 도커 볼륨과 볼륨을 사용하는 방법에 대해 알아봤다. 2022.02.16 - [Server & System/Docker] - [Docker] : host volume 공유, 호스트 볼륨 공유 2022.02.16 - [Server & System/Docker] - [Docker] : Volume Container, 볼륨 컨테이너 2022.02.16 - [Server & System/Docker] - [Docker] : Docker volume , 도커 볼륨 JavaScript 30일 챌린지 오늘은 마이크로 말을 하면 자동으로 채팅을 쳐주는 작은 프로젝트를 진행했다. 그냥 간단하게 따라서 코딩하는 정도에 그쳤다. 2022.02.16 - [Proje.. 2022. 2. 16.
[TIL] : 107 일일 배움을 위한 Today I Learned ! JavaScript 30일 챌린지 14일차 완료했다. 배열 복사와 참조에 대해 코딩을 했다. 이론 부분은 따로 검색해서 찾아보았다. 2022.02.10 - [Project/JavaScript 30일 챌린지] - [JavaScript 30일 챌린지] : 14일차 Spring Boot 스프링 부트로 검증 코드를 추가했다. 2022.02.10 - [Framework/Spring Boot] - [Spring Boot] : BindingResult 사용(1) 2022.02.10 - [Framework/Spring Boot] - [Spring Boot] : BindingResult 사용(2) 2022.02.10 - [Framework/Spring Boot] - [S.. 2022. 2. 10.
[Spring Boot] : 타임리프를 통한 검증 코드 추가하기 타임리프를 통한 검증 코드 추가하기 상품 등록에 검증 코드를 추가해주었다. 검증이 처음에는 뭔가 했는데 그냥 쉽게 입력 누락이나 정해진 범위 초과 등 정석에 맞지 않는 부분이 틀렸다고 알려주는 코드를 추가해주는 것이였다. 이것 역시 공모전을 진행하면서 고생했던 부분이었는데 이렇게 쉽게 할 수 있는 것을 보고 많이 배워간다. 예시 코드는 너무 길어서 일부분만 뺴왔다. //검증 오류 결과를 보관 Map errors = new HashMap(); 먼저 컨트롤러에 검증 로직을 추가하기 위해 검증 오류 결과를 보관할 errors를 만들어주었다. if (!StringUtils.hasText(item.getItemName())) { //넘어온 글자가 없으면 errors.put("itemName", "상품 이름은 필수.. 2022. 2. 10.
[Spring Boot] : 상품 상세 페이지 타임리프 적용 및 목록으로 가기 구현 @GetMapping("/{itemId}") public String item(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; } @pathVariable로 요청 값을 받아서 조회하고 model에 담아두고 뷰 템플릿을 호출해 준다. 타임 리프를 사용하기 위해 html 코드에 위 코드를 추가해 주고 동적 웹 페이지를 위해 th:href 를 사용해서 경로를 잡아준다. 상품 ID 제품을 상세 조회 했을 때 등록한 정보에 맞게 나오게 하기 위해 각 표시 부분에 th:value를 추가해 주준다. 예를 들어 상품.. 2022. 2. 3.
[Spring Boot] : 프로젝트 생성 및 요구사항 분석 https://start.spring.io/ 위 사이트에서 Spring 프로젝트를 생성해 주었다. 이번 강의 섹션에서는 요구사항 분석을 통해 상품을 관리할 수 있는 서비스를 만들어 본다. 상품 도메인 모델은 상품ID, 상품명, 가격, 수량이고 상품 관리 기능은 상품 목록, 상품 상세, 상품 등록, 상품 수정이 있다. 상품 상세는 자세히 볼 수 있는 페이지, 등록은 상품을 등록하고 목록은 등록한 상품들이 보여지는 페이지이다. 강사님이 현업에서 일 하는 방법에 대해 설명해 주셨다. 요구사항이 정리되면 디자이너, 웹 퍼블리셔, 백엔드 개발자가 일은 나눠 진행하고 디자이너가 요구사항에 맞게 디자인하고 웹 퍼블리셔는 HTML, CSS를 만들어 개발자에게 제공한다. 백엔드 개발자는 웹 퍼블리셔를 통해 HTML 화면.. 2022. 2. 1.
[TIL] : 92 일일 배움을 위한 Today I Learned ! 프로그래머스 프로그래머스에서 행렬의 덧셈을 파이썬으로 풀어봤다. 알고리즘 풀이는 익숙해 지지가 않는다.. 매우 매우 노력이 필요한 부분이 될 것 같다.. 2022.01.26 - [Algorithm/프로그래머스] - [프로그래머스] : 행렬의 덧셈 파이썬 풀이 JavaScript 자바스크립트 노마드코더 강의를 듣고 있다. 아직 기초 부분이지만 내가 아직 Java도 완벽하지 않기 때문에 혹시 놓치는 것이 있을까봐 꼼꼼하게 듣는 중이다. 때문에 아직은 기초 파트만 갈고닦고 있다. 2022.01.26 - [프로그래밍언어/JavaScript] - [JavaScript] : Object 기초 실습 2022.01.26 - [프로그래밍언어/JavaScript] - [J.. 2022. 1. 26.
반응형