It 33

Spring boot/JPA 실습 양뱡향 매핑, 지연 로딩(lazy loading), 영속성 컨텍스트, toString오류와 noSession오류

양방향 매핑 일단 더미 데이터가 필요해서 생성해준다 자주 쓸 것 같으니까 redme에 추가시켜준다. jpa에서 orm을 해줄 때 위 주소를 /test/post/1을 호출해주면 이 1은 user오브잭트가 아닌데 어떻게 데이터를 호출해줄까? 바로 ManyToOne에서 보고 프라이머리 키인 것을 인식한 후에 해당 오브젝트로 때려주는 것이다. 근데 만약에 user에서 post를 orm을 하려고 한다면 주석을 꼭 공부할것. 왼쪽@JsonIgnoreProperties({"user"})를 붙여주지 않고 호출하면 아래와 같이 무한 반복되는 것을 볼 수 있다. 오른쪽@JsonIgnoreProperties({"user"})를 붙여주고 호출했을 때다 post를 컬랙션으로 설정한 이유는 유저 한 명은 여러 개의 게시글을 작성..

Springboot 2021.07.02

GIT 기본 개념 GIT HUB저장소랑 연결하기

일단 첫 번째로 자신의 GITHUB에 자신의 아이디로 로그인한다. 그다음 새로운 레파지토리를 하나 생성한다 push라는 명령어는 형상관리 명령어가 아니라 그냥 업로드하는 것이다 자신의 레파지토리 주소를 복사하고 paste를 눌러서 복사한 주소를 붙여 넣는다 주의할점 공용 컴퓨터를 사용할 때 꼭 주의하여야 할 사항이 git에 한편 연결이 되면 내 github에 아이디와 비번이 윈도우 자격이 컴퓨터에 남아서 다른 사람이 내 github에 마음대로 접근하고 파일도 업로드시킬 수 있는 상태가 됩니다. 그래서 제어판-> 사용자 계정 들어가서 빨간 네모 탭에 github에 관련된 데이터가 있으면 github를 사용하고 난 후에 꼭 여기로 들어가서 내 개인정보들을 삭제해줘야 한다 origin의 뜻은 원격지라는 뜻이다..

카테고리 없음 2021.07.02

Spring boot/JPA / DB 기본 개념 테이블과 오브젝트 (1){join}

관계형 DB는 기본적으로 테이블을 하나 들고 있다 즉 db는 테이블의 모임이다. 위테이블을 예로 들자면 id에 있는 데이터는 칼럼 빨간색 네모처럼 가로로 한 줄을 튜플 또는 래코드라고 한다. 근데 DB는 이 칼럼에는 오브젝트를 받지 못한다. 왜냐하면 데이터베이스 규칙의 원자성이라는 규칙이 있다. 최소 단위의 데이터 하나만 넣을 수 있다는 뜻이다. 프로그래밍 언어는 오브젝트 저장이 가능한데 DB는 불가능하다. 그래서 프로그래밍 언어에서 db로 모델링할 때는 어쩔 수 없이 db에 프라이머리 키만 저장을 해놓는 것이다. 그래서 나중에 찾을 때는 프라이머리 키를 참조해서 db에서 찾는 것이다. 위 과정에서 구조가 모순되는 단점이 생겨버린다. 한 명이 여러 개의 글을 쓸 수 있지만 개시글입잡에서는 1명만이 개시글..

Springboot 2021.06.30

Spring boot/JPA실습 부트스트랩 사용해서 로그인 기능 연습해보기(2)

저번 포스팅에서 이어서 작성됐습니다. 로그인 기능 위 로그인 기능이 실제 서비스라고 가정한다면 사용자에게 굉장히 불친절한 서비스라고 볼 수 있다. 1. 메시지 경고창이 없음 2. 아이디 지워지는 게 맘에 들지 않는다. 3. 회원정보 수정이 없다. 그래서 위 불편사항을 수정해 보겠다. 3. 회원정보 수정이 없다. 위 teglib는 필요할 때마다 내가 복사해서 쓸 것이다. 주석을 꼭 참고해서 보시길. jstl문법이다 if문이라고 생각하면 된다. test속성의 값으로 조건을 걸면 된다. empty연산자는 null과 equls를 동시에 체킹 해준다. 로그아웃 기능 구현 1. 메시지 경고창이 없다 java에서의 String특징 String컨스턴트 풀 컨스턴트 = 상수 String이 기존에 있던 객체에 추가적으로 ..

Springboot 2021.06.30

HTTPS 정리

HTTPS 로그인을 할 때 전송방식을 post로 한다 그 이유는 post방식으로 해도 body에 데이터를 들고 가는 방식이라서 볼 수 없는 것은 아니다 그래도 post방식으로 하는 이유는 get방식으로 로그인을 하게 되면 쿼리 스트링으로 로그인한 클라이언트의 데이터 유출되는데 쿼리 스트링은 암호화하는 것이 불가능하다. HTTPS의 S는 SSL(Secure Soket Layer)을 이용한 HTTP통신방식이다. HTTPS는 데이터가 요청될 때부터 도착할 때까지 암호화가 돼있다. HTTPS의 서버는 개인이 만드는것이라고하면 신뢰성이 현저히 떨어진다고 할 수 있다 하지만 HTTPS서버를 관리하는 보안회사가 따로 있기 때문에 개인이 서버를 HTTPS를 통해서 만든다고 해도 암호화가 다 돼있는 클라이언트의 정보를 ..

Springboot 2021.06.30

Spring boot/JPA실습 부트스트랩 사용해서 로그인 기능 연습해보기(1)

부트스트랩을 사용해서 간단하게 블로그를 만들어보는 연습을 해볼게요 부트스트랩은 쉽게 설명하자면 디자인 라이브러리이다 위 주석을 꼭 공부할 것! 그리고 위 코드 위에 의존성 주입하는 코드는 너무 당연해서 포스팅하지 않았습니다. 저번 포스팅을 참고해주세요 아래에 사이트는 트위터에서 재공 하는 부트스트랩입니다. https://www.w3schools.com/ 부트 스트렙을 사용할 때 잘 어떻게 사용해야 할지 잘 모르겠을 땐 일단 위에 사진처럼 들어가서 다 복사한다. 그리고 test폴더를 만들어서 한번 테스트를 해본 후에 어디에 뭘 넣을지 선택하면 되는 것이다. 위와 같이 18번 줄부터 21번 줄까지 코드를 보면 css와 js를 다른 서버로 자원을 요청하도록 주소가 적혀있다. CDN 컨텐트 딜리버리 네트워크 위..

Springboot 2021.06.29

Spring boot / DB {CRUD} 실습 해보기

저번 포스팅에서 이어서 갑니다. jap라이브러리의 사용법 저번 포스팅에서 yml파일의 라이브러리를 위와같이 수정합니다 수정하는 이유는 ddl-auto에 create라는 값이 들어있으면 디비가 실행될때마다 테이블이 만들어져서 초기화된다 show-sql 속성을 true로 해놓으면 위와같이 쿼리문이 콘솔에 출력되는것을 볼 수 있다 yml을 수정하고 주석내용은 중요하니 꼭 본다 package를 만들어 주는데 web이란 폴더를 만들어줘서 거기서 db를 핸들링하는게 규칙이다 INSERT insert하는 함수를 실행한 후에 postman을 이용해서 데이터를 insert해본다 오브젝트로 보내는 방식이니 x-www-form-urlencoded방식으로 mime타입을 설정한뒤 양식에 맞게 데이터를 보낸다 DB에 보낸 데이터..

Springboot 2021.06.28

Spring boot실습 톰켓의 내부

톰켓에 url 요청을 할 때 요청정보에 들어가는 정보는 누가 요청을 했는지 어떤 프로그램으로 요청했는지 등등에 대한 많은 정보들이 byte스트림으로 String타입이 들어온다. 이때 문자열 그대로 있으면 활용하기 어려우니까 변수에 담아주는 것이 효율적이다. 이때 많은 변수가 담겨있기 때문에 자바 변수를 클래스에 담아둔다 위와 같은 작업을 톰캣이 해준다. request객체와 response객채를 톰캣이 만들어서 자바에게 전달해준다. 그럼 자바 servelet에서 받아서 처리하는 것이다. 그래서 위 두 객체들에 접근하는 방법이 필요하다 의존성 주입 DI, 의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 필요한 객체를 받아서 사용하는 것이다. 이를 통해 객체 간의 결합도를 줄이고 코드의 재활용..

Springboot 2021.06.24

Spring boot/실습 response의 이해

컨포넌트 스캔 기준 이유: IOC컨테이너에 객체 등록 위치:com.cos.secondapp 스프링에서 IOC컨테이너는 어노테이션을 가지고 있는 java파일을 찾아내고 그 어노테이션의 주소가 있는 함수를 실행한다. POST방식으로 자원요청->디스패쳐가 실행돼서 요청을 가로챈다. -> IOC 스캔-> 해당 자원(View)을 가지고 있는 함수 호출 이때 함수에 매개변수가 있다고 한다면 이때 디스패처가 해당 요청 시 받은 요청 해더에 있는 컨텐트 타입과 데이터를 가지고 와서 해당 매개변수에 파싱 해서 주입시켜준다 함수가 실행되면서 매개변수를 주입시켜 주는 것이다 진짜 마법 같은 일이 스프링을 해내는 것이다. 만약에 해당 자원을 찾지 못했다면 null을 반환하는 것이다. response 응답할 때 관여하는 기능이..

Springboot 2021.06.23

Spring boot실습 FrontController 패턴의 이해!(MVC패턴)

FrontController 패턴 url 패턴은 자원을 디렉트로 찾는 모델 원 방식이다. 아피치(서버) 톰캣(was)이 하나의 서버를 실행하면 서버 안에 리소스(자원)가 있다. 이 리소스에 접근 시에 url방식을 사용하면 다이렉트로 주고받는다 이때 GET 방식으로 자원을 요청하면 응답 시에 text/html타입으로 응답해준다. 이때 웹 애플리케이션 서버(was)의 목적은 컴파일하는 것이다. java 관련된 파일을 요청할 때만 아파치가 아닌 톰캣이 일을 하는 것이다. 이때 자바 코드에 DB에 커넥션 코드가 있다고 가정을 해볼 때 모델 원방식의 단점을 볼 수 있다. -첫 번째로 파일마다 url을 연결해 줘야 하여서 일이 너무 많아진다. 파일마다 DB커넥션을 해야 하기 때문이다. 겹치는 코드가 많아짐 -두 번..

Springboot 2021.06.23