전체 글 57

[My-SQL] ON DELETE CASCADE (외래키로 연결된 row 한번에 지우는 법)

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails 지울려고 하는 테이블의 row 가 다른 테이블에 foreign key로 묶여 있을때 나는 오류 ON DELETE CASCADE foreign key 로 연결된 데이터들이 일관성을 유지할 수 있도록 하기 위해서, foreign key constraints 라는 것이 있습니다. 공식 문서는 CASCADE 를 foreign key constraints 에서 옵션으로 사용할 수 있는 Referential Actions 이라고 설명합니다. CASCADE 는 부모 테이블의 row 에 DELETE 또는 UPDATE 명령어를 적용할 때, 자동적으로 자식 테이블의..

DB/MySQL 2023.02.17

12. 컴포넌트 스캔과 자동 의존관계 설정

- 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비. 컨트롤러가 서비스를 통해 회원가입 하고 서비스를 통해 조회를 할 수 있음 ( 컨트롤러가 서비스를 의존함) (의존관계) @Controller : 스프링 컨테이너에 등록된 후 스프링에서 관리가 됨. @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @Autowired 생성자에 @Autowired 가 있으..

회원가입 폼 , 회원가입 시 유효성 검사 JS

회원가입 이름 좋은 이름 입니다! 한글만 입력 가능합니다(특수기호, 공백 사용금지). 별명 좋은 별명 입니다! 별명을 입력해주세요(공백 사용금지). 아이디 사용가능한 아이디 입니다. 5글자 이상 20글자이내 알파벳, _ ,숫자 만 입력가능합니다. 비밀번호 좋은 비밀번호 입니다. 8~16자 영문, 숫자 를 사용하세요(공백금지). 비밀번호확인 비밀번호가 같습니다! 비밀번호가 틀립니다! 이메일 이메일 양식이 틀렸습니다. 핸드폰 공백이있습니다. 우편번호 우편번호를 입력해주세요. 주소 주소를 입력해주세요. 상세주소 상세 주소를 입력해주세요. 알파벳 , 한글 , 숫자 유효성 검사 $('.onlyAlphabetAndNumber').keyup(function(event){ if (!(event.keyCode >=37 ..

JavaScript 2023.01.17

11. 회원 서비스 테스트

IntelliJ 단축키 Ctrl + Shift + T : 테스트 생성 멤버서비스테스트 작성 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions...

10. 회원 서비스 개발

IntelliJ 단축키 soutv : value를 바로 sysout 하는 기능 실행취소 (redo) : Ctrl + Shift + z Rename : Shift + F6 변수추출 : Ctrl + Shft + v 회원 서비스 작성 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springf..

9. 회원 리포지토리 테스트 케이스 작성

- 개발한 기능을 테스트 할 때 자바의 main 메소드 혹은 웹앱의 컨트롤러를 통해서 하면 단점이 많음( 실행하는데 오래걸리고 , 반복실행하기 어렵고 , 여러 테스트를 한번에 하기 어려움 .) 개발한 기능을 테스트할때 자바에서 JUnit 이라는 프레임 워크을 통해 단점을 보완함. 회원 리포지토리 메모리 구현체 테스트 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; impo..

8. 회원 도메인과 리포지토리 만들기

InteliJ 단축키 Alt + Enter = 다른 클래스 임포트 Alt + Insert = 생성 * 모든 강의를 듣고 작성을 해서 추가 된 코드가 있음. 회원 객체 생성 package hello.hellospring.domain; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return nam..

자바 문법 정리 ( Map)

Map https://wakestand.tistory.com/112 자바 Map 사용법부터 출력까지 일단 Map의 특징을 먼저 알아보자면 Map은 선언 시 로 값을 넣는다 Key와 Value는 한 쌍으로 Key로 식별하고 Value에 사용할 값을 넣는 식이다 여기서 Key는 중복이 불가능하고 동일한 Key 값으로 값을 넣 wakestand.tistory.com Hash Map https://d2.naver.com/helloworld/831311 ( 네이버 동작원리 설명) https://codechacha.com/ko/java-map-hashmap/ Java - HashMap 사용 방법 및 예제 HashMap은 Map의 일종으로 key와 value의 쌍으로 이루어진 데이터를 보관합니다. HashMap은 데..

7.비지니스 요구사항 정의

데이터 : 회원 ID, 이름 기능 : 회원등록 , 조회 아직 데이터 저장소가 선정되지 않음 ( 가상의 시나리오 ) (후에 데이터 베이스 결정 후 변경) 컨트롤러 (controller) : 웹 MVC의 컨트롤러 역할 서비스 (service) : 핵심 비즈니스 로직 구현 예) 회원은 중복가입 안되게 하는 로직 .. 리포지토리 ( interface ) : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 ( VO ) : 비지니스 도메인 객체 , 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리되는 비지니스 도메인 객체 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황..