부트캠프 기록/Section3 13

정규식 표현

https://blog.naver.com/zzang9ha/222013925468 [Java/자바] - 정규 표현식(Regular Expression) 안녕하세요~ 이번 시간에 정리할 내용은 "정규 표현식" 입니다. 평소에 코딩을 하면서 정규표현... blog.naver.com “^\\S+(\\s?\\S+)*$” 정규 표현식에서 ‘^’은 문자열의 시작을 의미합니다. ‘$’는 문자열의 끝을 의미합니다. ‘*’는 ‘*’ 앞에 평가할 대상이 0개 또는 1개 이상인지를 평가합니다. ‘\s’는 공백 문자열을 의미합니다. ‘\S’ 공백 문자열이 아닌 나머지 문자열을 의미합니다. ‘?’는 ‘?’ 앞에 평가할 대상이 0개 또는 1개인지를 의미합니다. ‘+’는 ‘+’ 앞에 평가할 대상이 1개인지를 의미합니다 유효성 검증 ..

Schema is not dropped on hbmddl.auto = create.drop

https://stackoverflow.com/questions/6751090/schema-is-not-dropped-on-hbmddl-auto-create-drop Schema is not dropped on hbmddl.auto = create.drop I am using hbmddl.auto set to create in the hibernate configuration file and using it to connect to the derby database in network mode (not embedded, don't know if that is relevant). Here is my stackoverflow.com 저와 같은 문제를 겪은 분의 질문입니다. ddl-auto옵션 값이 creat..

부트캠프 3달차 KPT 회고🖌

지치는게 뭐죠 커피 쌓아두고 마시지만 절.대. 지친거 아닙니다. 저의 지치지 않는 힘의 원천. 스타벅스 카라멜 마끼야또랑 베란다 블렌드 추천합니다 스벅 연락 기다릴게요 ;) (요즘 커피 두세 잔 필수입니다. 그래봤자 톨 사이즈 좀 넘기는 거긴 한데.. 항상 커피 마시니까 친한 친구들도 제가 커피 좋아하는 줄 알더라고요. 안좋아했는데 계속 마시니까 좋아지는 것 같기도 합니다. 점점 늘다가 직장인되면 몇 샷을 마실거지 싶기도 하고...ㅎㅎ 그래도 직장인 시켜주세요) 이번 세션에선 대망의 SpringMVC 를 배웠습니다. 목차를 나열하자면 API 계층과 서비스 계층 작성, 예외 처리, JDBC, JPA , 트랜잭션, 테스팅 등이 있습니다. 역시나 어렵더라고요. 승부욕을 자극하는 스프링.. 🔥 한편으론 인강으로..

java.lang.UnsupportedClassVersionError 해결방법

인텔리제이로 생성한 jar파일을 실행하려다가 이와 같은 오류가 발생했습니다. 실행파일의 자바 버전과 실행 환경의 자바 버전이 맞지않아서 그런다고 합니다. 해결방법 그래들 설정 파일에서 로컬 환경과 맞는 자바 버전으로 다운그레이드 해줬습니다. 자바 11로 업그레이드를 무슨 문제인지 못하고 있는데 프로젝트 시작하기 전에 빨리 해결해야 겠습니다. 참고 블로그 [JAVA] java.lang.UnsupportedClassVersionError 해결방법 카산드라(Cassandra) 최신 버전 CLI프로그램을 실행하려니 아래와 같은 오류가 나옴을 확인할 수 있습니다.현재 이 맥에서는 JDK 1.6이 설치된 상태입니다. Exception in thread "main" java.lang.UnsupportedClassVe..

[Spring MVC] Mockito

mockito란 테스트 세계에서의 Mock은 가짜 객체를 의미 Mocking: 단위 테스트나 슬라이스 테스트 등에 Mock 객체를 사용하는 것 Mockito: Mock 객체로 Mocking 할 수 있게 해주는 Mocking Framework Mockito에서 가짜 객체를 만들기 위해 Dynamic Proxy 기술을 이용 Dynamic Proxy는 핵심 기능을 수행하기 전에 부가 기능을 적용하기 위해 주로 사용 Mockito는 부가 기능을 적용하기 위함이 아니라 가짜 객체가 진짜인 척 동작을 수행하기 위함 필요성 슬라이스 테스트의 목적인 해당 계층 영역에 대한 테스트에 집중하기를 달성하기 위해서 만약 mocking을 하지 않는다면 슬라이스 테스트라기 보단 통합 테스트에 가까움 Controller에 적용 @..

[Spring MVC] 트랜잭션(Transaction)

트랜잭션 여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위 전부 성공하든가 전부 실패하든가(All or Nothing) ➡ 데이터 무결성 ACID 원칙 (데이터베이스 트랜잭션이 안전하게 수행되는 것을 보장하기 위한 성질) 원자성: 작업을 더 이상 쪼갤 수 없음 일관성: 비즈니스 로직에서 의도하는대로 일관성있게 저장되거나 변경되는 것 격리성: 여러개의 트랜잭션이 실행될 경우 각각 독립적으로 실행이 되어야 함 지속성: 트랜잭션이 완료되면 그 결과는 지속되어야 함, 물리적인 저장소 트랜잭션 커밋과 롤백 Spring FrameWork에서의 트랜잭션 처리 트랜잭션 로컬 트랜잭션 분산 트랜잭션 Spring에서 사용되는 트랜잭션 방식 선언형 트랜잭션(비즈니스 로직에 애너테이션 추가, AOP방식) 프로그래맹..

[Spring MVC] JPA 연관관계 매핑

1. @ManyToOne(단방향/양방향) 외래키에 해당하는 객체 참조를 가지고 있는 자연스러운 방식 @JoinColumn(name ="") 양방향을 원한다면 @OneToMany 추가 2. @OneToMany 단독으로 잘 사용하지 않음 이유는 아래 블로그 참고 https://wwlee94.github.io/category/blog/spring-jpa-one-to-many-save-issue/ [Spring JPA] 1:N 관계 엔티티 save시 update 쿼리가 추가로 발생하는 이슈 개요 ‘Party-ing’ 프로젝트를 진행하던 도중 관계를 가지는 엔티티를 Save 할 때 2개의 테이블에 데이터는 잘 생성되었으나 Save 쿼리문 뿐 아니라 Update… wwlee94.github.io 3. @ManyTo..

[Spring MVC] JBDC 기반 데이터 엑세스 계층

✅ 학습 목표 JDBC가 무엇인지 이해할 수 있다. Java에서 JDBC가 어떤 역할을 하는지 이해할 수 있다. Spring Data JDBC가 무엇인지 이해할 수 있다. Spring Data JDBC를 이용해서 데이터의 저장, 수정, 조회, 삭제 작업을 할 수 있다. Spring Data JDBC 기반의 엔티티 연관 관계를 매핑할 수 있다 JDBC 정의 JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트 하거나 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는 Java에서 제공하는 표준 사양(또는 명세, Specification) JDBC API 사용 흐름 Sprin..

[Spring MVC] API 계층_DTO(Data Transfer Object)

✅ 학습 목표 DTO(Data Transfer Object) DTO가 무엇인지 이해할 수 있다. DTO를 Controller 클래스에 적용할 수 있다. DTO Validation이 무엇인지 이해할 수 있다. //DTO 예시 public class MemberPostDto { private String email; private String name; private String phone; public String getEmail() { return email; } public String getName() { return name; } public String getPhone() { return phone; } } DTO 정의 클라이언트에서 서버 쪽으로 전송하는 요청 데이터, 서버에서 클라이언트 쪽으로 ..

[Spring MVC] API계층_Controller

✅ 학습 목표 API 엔드 포인트인 Controller 의 구성요소 이해 실제 동작하는 Controller의 기본 기능 구현 Controller 클래스 설계 및 구조 생성 1. 애플리케이션의 경계 설정 2. 애플리케이션 기능 구현을 위한 요구사항 수집 3. 패키지 구조 생성 (Spring Boot에서 계층 기반 패키지 구조보다 기능 기반 패키지 구조 권장) 4. Controller 설계 '클라이언트로부터 발생할 요청에는 어떤 것들이 있을까' REST API 기반의 애플리케이션에서는 애플리케이션이 제공해야 될 기능을 리소스(Resource, 자원)로 분류 리소스에 해당하는 Controller 클래스를 작성하면 됨 5. main() 메서드가 포함된 애플리케이션의 엔트리포인트(Entrypoint, 애플리케이션..