Springboot 103

Springboot사용해서 블로그 만들기 글쓰기기능(summernote에디터사용) 추가와 상세보기 페이지(삭제,수정) 회원정보 변경

웹에서는 인증(어선트케이션)과 권한(어 솔 라이즈)이 있다. 건물로 치면 입구에 들어가는 행위가 인증, 어떠한 방으로 들어가는 것은 권한인 것이다. jpa규칙 jpa는 형태만 똑같으면 되기 때문에 password에 별칭을 달아서 형태를 유지하되 password를 session에 담기지 않도록 했다. jpa규칙 jpa는 형태만 똑같으면 되기때문에 password에 별칭을 달아서 형태를 유지하되 password를 session에 담기지 않도록 했다. 저번에 구현했던 회원가입 파일을 복사해서 위와 같이 수정했다. readonly는 수정이 불가능하도록 만들어주는 속성 required는 해당 태그가 입력 없이 subimt이 안되도록 사용자에게 강제하는 속성 규칙 EL표현식은 위와 같이 변수로 담아서 보내면 톰캣이..

Springboot 2021.07.07

SDK사용해서 SMS서비스 만들기

sdk(소프트웨어 디벨롭 키트) sdk는 다운로드하는 것이다 그래서 api와 다르게 주소 요청 없이 바로 사용할 수 있다. sdk를 사용하기위해서 일단 위 사이트를 가입해야 한다. 초기에 300원 정도 테스트 비용을 준다. javaProject를 만 든다. 위 jar파일을 lib폴더에 넣어서 build path를 시킨다음 위 샘플 코드에 String api_key와 api_secret키에 추가시키면 된다 위 샘플을 함수로 만들어서 사용하는 것도 좋은 방법이다.

Springboot 2021.07.06

Spring boot/JPA 실습 블로그를 만들어보자!(회원가입 페이지 주소 API사용)

주소 API 사용 API : 애플리케이션 인터페이스 주소를 요청해서 기능구현을 하는것이다. 들어가면 체험하기 탭이있다. 체험하기를 누르면 api가 나오는 것을 볼 수 있다. 위와 같은 체험하기를 통해서 내가 만들 서버에 어떤 것을 만들어야 할지 대략적으로 그려보는 것이다. 이제 api를 요청하는 방법 이제 api를 요청하기 위한 방법을 알아본다 위 가이드대로 url을 설정하면 https://www.juso.go.kr/addrlink/addrlinkurl.do?comfmkey="승인키"&returnUrl=http://localhost:8000 어떤 contentType으로 데이터를 보내는지 알려주지 않는다. 굉장히 불친절한 문서다 그래서 직접 테스트를 해서 어떤 타입으로 데이터가 오는지 알아봐야 한다. 설..

Springboot 2021.07.05

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

Spring boot/JPA /DB 기본 개념 테이블과 오브젝트(2){JPA의 ORM기술}

ORM 기술 jpa의 뜻은 java persistence API이다 persistence는 영속이란 뜻이다. 자바로 영구히 데이터를 저장할 수 있는 API라는 뜻이다. 영구히 데이터베이스에 저장할 수 있도록 함수를 제공해주는 것이다. jpa의 기반 기술은 hirebernate =>ORM(오브젝트 릴레이션 매핑) 기술을 사용한다 실습 일단 저번 포스팅에서 사용했던 테이블의 데이터를 다 날리고 새로 만들어 보자 기존에 있던 폴인키는 int 타입에 userId로 돼있었는데 그 폴인키를 지우고 위와 같이 코딩해줬다 위 주석은 중요한 내용이니 꼭 숙지해야 한다. 그리고 저장을하면 CREATE가 돼있기 때문에 테이블이 새로 생성되는데 위 주석처럼 jpa에서 자동으로 폴인키를 설정해준다. @ManyToOne을 알면 ..

Springboot 2021.07.01

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실습 {RestFullAPI}

RestFullAPI 웹을만들때 서버를 만드는 사람이 자원의 주소를 설정할때 서버를 만드는사람이 자기 마음대로 해 버리면 통일성이 없어서 작업하는데 소통의 문제가 있었다 그래서 이 문제를 해결하기위해 주소를 설정할 때 약속을 정했다. 데이터를 리턴하는 주소를 설정할땐 규칙이 있고 그것을 지켜줘야 통일성있는 협업을 할 수 있다 1. 소문자를 사용한다. 주소에서 대소문자를 구분하므로, 카멜방식이 아닌 소문자를 사용하여 작성한다. 2. 언더바를 대신 하이픈을 사용한다. 가급적 하이픈의 사용도 최소화하며, 정확한 의미나 표현을 위해 단어의 결합이 불가피한 경우에 사용한다. 3. 마지막에 슬래시를 포함하지 않는다. 슬래시는 계층을 구분하는 것으로, 마지막에는 사용하지 않는다. 4. 행위는 포함하지 않는다. 행위는..

Springboot 2021.06.29