전체 글 269

Spring boot 마이페이지!(2) 이메일 인증 with JavaMailSender

메일을 보내기 위해 build.gradle 로 들어가서 하나의 의존성을 추가한다 이걸 넣으면 @Autowired private JavaMailSender sender;//자체적으로 제공해주는 기능 이렇게 자체적으로 제공해주는 기능을 사용할 수 있다 의외로 메일 보내는 건 어렵지 않다 toaddress=보낼 주소 subject=제목 body=내용이다 핸드폰 인증도 비슷한 거 같다 다만 돈이 든다 그래서 마지막에 공부해보려고 한다 그리고 application.properties로 가서 이렇게 추가해준다 단 사용할 계정에서 보안 수준이 낮은 앱의 액세스 허용을 해줘야 한다! 이제 userservice로가서 인증번호 전송 발생 시 db에 들어있는 랜덤 넘버를 수정해주는 함수를 만들자 @Transactional ..

Spring boot 마이페이지!(1) with AuthenticationPrincipal

이제 마이페이지를 만들건대 간단하게 내 정보 비밀번호변경 이메일 인증 서비스를 구현해볼 것이다! 컨트롤러에서 @GetMapping("/mypage") /auth/를 빼고 작성해준다 왜냐면 로그인 시에만 들어올 수 있게 해 주기 위해서 이다 @AuthenticationPrincipal principaldetail principaldetail 로그인을 성공했다면 여기에서 로그인한 사용자 정보를 꺼내 쓸 수 있다 역시 스프링이 자체적으로 제공하는 기능이다 편리하고 보안성 있다 그리고 model에 uservo를 통으로 넘겨주고 html에서 사용해준다 놀랍게도 thymealf에서 함수까지 그대로 저렇게 사용이 가능하다 모든 게 제대로 출력된다 물론 시간제한도 만들고 해야 하지만 일단 완벽하게는 아니더라도 80프로..

Spring boot 로그인하기! with Security

controller에 로그인 페이지를 걸어준다 loginpage를 구현해주고 구글로그인 페이스북로그인 이거는 스프링에서 oauth2에서 미리 지정해서 논 경로라고 한다 그리고 여기서 주의할 점 name="username" name="password" 스프링한테 줄 때 이렇게 해줘야 한다 물론 바꿀 수도 있는데 그냥 안 바꾸고 진행하는 게 편하다! 왜 이렇게 받는지는 시큐리티 로그인을 만들면서 봐보자! 일단 로그인 성공 시 담을 principaldetail을 만든다 spring으로 자체적으로 제공해주는 userdetails를 임플리먼트 받는다! 로그인에 성공 했다면 시큐리티 전용 세선에 authentication으로 감싸 져서(?) 들어가게 된다 사용 시에는 security session=>authenti..

Spring boot 회원가입 만들기!(3) 해시하기 with BCryptPasswordEncoder

이제 비밀번호 및 이름을 받아서 넣을 건데 dto와 바닐라 js를 이용해서 유효성 검사를 할 것이다! 원래 프런트엔드에서도 보안 작업을 걸어야 하지만 사실상 검사를 눌러서 수정해 버리면 의미가 없어지기 때문에 백엔드에서 잘못된 값이 들어왔을 때 튕겨내주는 장치를 하려고 한다! (뇌피셜 일뿐 프런트엔드 전문가 분들이 만들다면 당연히 좀 더 다를 거라고 생각한다 보안은 그냥 정말 특수한 공부 영역 같다) 일단 역시 바닐라 js로 비밀번호 역시 css를 만져준다! 이제 회원가입을 진행할 텐데 form->controller->userservice->비밀번호 해시-> dao->service->controller 이렇게 될 거 같다 이제 시큐리티로 가서 인코더를 만들자! BCryptPasswordEncoder 를 ..

Spring boot 회원가입 만들기!(2) 아이디중복검사 with ajax

이제 아이디 중복검사를 할 건데 바닐라 js 비동기 통신을 할 것이다 원래는 j쿼리를 사용했지만 바닐라 js로 사용하는 습관을 들일 예정이다 순서는 이렇게 된다 ajax요청->requestcontroller요청->userdao탐색->userservice반환->requset반환->ajax가 받음 userdao에 jpa 식으로 써준다 크정말 신기하다 저렇게 대소문자를 구별해서 써주면 혼자서 db에 select *from 테이블 이름 where email=?! 이렇게 쏴준다! 이제 userservice를 만들어준다 비웠다면 true가 들어있는 yes를 줄 거고 아니라면 false가 있는 no를 줄 것이다! (추후 existsByEmail로 변경했다) requsercontroller를 지정해준다 import 맞..

Spring boot 회원가입 만들기!(1) with security And mvcModel And jpa

일단 시큐리티설정을 해주고 모든 페이지에 대한 조건을 허용으로 해준다! .antMatchers("/","/auth/**","/static/**")////이 링크들은 .permitAll();///허용한다 모든 요청을 허용한다 를 해주고 이제 vo/dao/dto를 만들 것이다 dto는 왔다 갔다 컨테이너 용도이고 vo는 데이터베이스에 넣는 용도로 쓸 것이다! 컨트롤러에서 회원가입 페이지로 갈 수 있게 만들어준다! vo/dto/dao를 만들어준다! 1.vo 2.dto import javax.validation을 사용해 조건에 맞지 않는 형식이 들어오면 메시지를 출력해준다! userdto라고 되어있는데 나중에 singupdto/logindto 용도에 따라 나눠볼까 생각도 든다 3.dao 스프링 시작 시 의존성 ..

마치며

부연설명 양이 현재 걷는 방식은 어떻게 보면 현실적이지가 않다 이유는 그냥 양 x좌표에 대한 언덕의 x/y/기울기를 가져오는 것뿐이다 왜 그렇게 해야 하냐면 난 "수학을 잘 모른다" 양이 평지를 걸었다면 그냥 걸음수로 컨트롤하면 된다 왜? 1km로 달리는 러닝머신 위에서 내가 한 시간 동안 1km를 가고 싶다면 내가 2km로 뛰면 된다 하지만 양이 걷는 건 평지 즉 직선이 아니다 그러려면 둘 중 하나의 방법이 있다 양의 x값에 언덕의 좌표를 가져올 터인지 아니면 내가 수학을 겁나 잘해서 그걸 계산해서 걸을 수를 늘려줄 것인지! 진짜 멘붕이었고 다시 한번https://youtu.be/hCHL7sydzn0 이분의 영상을 봤고 이분의 영상을 참고해서 나만의 방법을 만들었다 처음 봤을 때와 막바지에 봤을 때 걱..

언덕위를 걷는양!

언덕 그리기->언덕 움직이기 양 이미지 가져오기->양 프레임 올리기->양 움직이기->양이 곡선 위를 걷기 이렇게 따로따로 해왔다 이제 대망의 하이라이트 양이 우리가 그린 언덕 위를 걷게 만들겠다! 두 가지 방법이 있다 1. 현실처럼 걷게 하는 법 2.x좌표에 따른 y좌표와 기울기를 걷는 법 우리는 2번을 쓸 것이다 이유는 "곡선 위에 일정한 속도로 오브젝트를 움직이게 하는 공식을 모른다"(나는) 과정 1. 클라이언트 접속 시 처음 양위치 계산 2. 베지어 클래스에 어떤 포인트 차례인지 알려주는 함수를 만든다 3. 언덕에 맞게 좌표를 넣어줄 함수를 만든다 4. 그거에 맞게 좌표를 계산해 주는 함수를 만든다 5. 그거를 받아서 양에게 준다 진짜 여기가 헬이었다 비슷하게 만드는 방법은 많지만 오차가 많기에....

언덕을 그리자!(4)

이전 글에서는 한 개의 언덕을 이동시켰다! 그러면 이제 이어 언덕이 나타나게 해 보자! 과정 1.point 클래스 고치기 2.draw 함수 고치기 3.bezier 클래스 고치기 과정이 좀 많아서 이렇게 적겠다 세부과정은 각 Step으로 적어 놓겠다! 1.point 클래스 고치기 stepup 에서 pointsx[0]에 초기값을 할당하게 하고 그다음 pointsx[1], pointsx[0]은 계속 스위치 하면서 화면 뒤에서 부터 언덕이 그려지게 만들기 위해 저렇게 설정해준다! 2.draw 함수 고치기 Step one 2차원 배열 생성! 2차원 배열을 만들어주는 함수를 만들어준다! setup함수에서 pointx/y에게 할당해준다! Step two 초기값 할당! 초기 값으로 설정해준다 이유는 이제 언덕이 뒤에서..