일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 스프링시큐리티
- PUT과 PATCH
- WIL
- java
- 알고리즘
- HTML
- .decode('utf-8')
- JSESSIONID
- java.sql.SQLException
- 자바
- 인프런
- 독서
- 김영한
- 인텔리제이
- 자바스프링
- 스파르타코딩클럽
- 객체지향
- ServerSelectionTimeoutError
- Code
- 항해99
- 프로그래머스
- MS949
- jwt
- 에러해결법
- unmappable character for encoding MS949
- org.h2.jdbc.JdbcSQLSyntaxErrorException
- mysql
- API
- TIL
- 엔터키 이벤트
- Today
- Total
목록항해99 7기/WIL(Weekly I Learned (12)
고을마을 : 나의 코딩 이야기
자유로운 회원가입과 로그인을 지향했으나 구글폼 회원들의 의견에는 회원가입 username, password에 있어서 제한이 있어야 한다는 의견이 지배적이었다. 우선 validator를 짜봤다. public static void validateInputUsername(SignupRequestDto requestDto) { String username = requestDto.getUsername(); //이메일 형식 String patternUsername = "^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$"; // 이메일 설정 유효성 검사 if (username == null || !Pattern.matches(patternUsername, username)) { t..
항해99 11주차 WIL[oAuth redirect는 백엔드가 관리해야한다.] 리다이렉트를 백엔드로 해놓으면... 이걸 프론트가 활용하지 못한다, 이에 따라 sedredirect를 해줬다. @GetMapping("/user/kakao/login") public void kakaoLogin(@RequestParam String code, HttpServletResponse response) throws IOException { KakaoUserInfo kakaoUserInfo = kakaoUserService.kakaoLogin(code); String url = "https://d2yxbwsc3za48s.cloudfront.net"; response.sendRedirect(url); }
//전체조회 public Map allPost(User user, long page) { PageRequest pageRequest = PageRequest.of((int) page,24); //BookmarkStatus를 true || false를 담아주기 위해 for문을 두번 돌리기 때문에 //모든 게시글을 다 찾아와서 for문을 돌렸을 때 서버 부하가 어느정도 올지 모르겠음(만약 게시글이 많을 경우) //게시글이 많을 경우 이중 for문때문에 부하가 상당할 것으로 예상이 되므로 메인페이지에서 최신 게시글 Top20정도만 //보여주는 것도 하나의 방법이 될 것 같음. //내림차순으로 Top 20만 내림차순으로 //List posts = postRepository.findTop20ByOrderByMod..

@Service @RequiredArgsConstructor public class KakaoUserService { private final UserRepository userRepository; private final PasswordEncoder passwordEncoder; @Value("${kakao_client_id}") private String client_id; @Value("${kakao_redirect_uri}") private String redirect_uri; public KakaoUserInfo kakaoLogin(String code) throws JsonProcessingException { // "인가 코드"로 AccessToken 요청 String accessToken ..
2022.6.26 항해 8주차. // 일반 회원가입 @Transactional public TokenDto register(SignupRequestDto requestDto) { // 회원 아이디 중복 확인 String username = requestDto.getUsername(); if (userRepository.existsByUsername(username)) { throw new CustomException(ErrorCode.SIGNUP_MEMBERID_DUPLICATE_CHECK); } // 닉네임 중복 확인 String nickname = requestDto.getNickname(); if (userRepository.existsByNickname(nickname)) { throw new C..
2022.6.26 항해 7주차. 목요일부터 실전프로젝트를 하게됐다. 우리 조는 Scatch : 슥캐치를 만들고자 한다. 캐치마인드처럼 그림그리면서 퀴즈를 맞추는 형식의 웹게임이다. 우선적으로 백엔드가 구현해야할 기능으로는, jwt를 활용한 로그인 회원가입, oAuth를 통한 로그인기능(카카오, 구글, 네이버) 소켓, stomp, sockJS를 통한 채팅구현이다. 이중에서 내가 담당하게 된 건 jwt를 활용한 로그인 회원가입, oAuth를 통한 로그인기능(카카오, 구글, 네이버)이다. 미니프로젝트, 클론코딩 주차에 로그인기능을 만들어보지 못했고, 이 기능에 대해 관심이 많았었다. jwt에 대한 기초적인 학습부터 진행했다. @Component public class TokenProvider implement..
항해 6주차 wil. 이번 주차는 멘탈붕괴의 한 주였다. 미니 프로젝트를 주도해가며 계획한 조원이 항해99에서 하차를 하게됐고, 이로 인해 계획이 어그러지기 시작했다. 협업에 대한 사전 지식없이 그대로 뛰어든거여서 하나하나 구글링해가며 찾아보는데 많은 시간을 할애하게 됐다. 특히 cors를 알아보고 이해하는 시간이 오래 걸렸다. 백엔드 서버를 열고, 프론트도 서버를 열어서 함께 에러를 수정해나가는데 많은 어려움을 겪었던 것 같다. jwt를 구현하지 않고 시큐리티만 고집했던 특정 조원으로 인해서 완벽하게 프로젝트를 구현해내지는 못했다. 이번 주에 얻어간건 cors에 대한 약간의 이해 정도... 클론코딩 주차에는 많은 것을 얻어갔으면 좋겠다.
항해 5주차. 주특기 주차가 끝나고 미니프로젝트를 시작한 주차이다. 프론트와 백의 협업으로 프로젝트를 완성하는 5주차... 사실 너무 정신없이 하루가 간다. 모르는거 투성이고 에러는 많이 걸리고...ㅠㅠ 팀원들의 도움으로 이 고난과 역경을 헤쳐나갈수있길. CORS란? CORS란Cross-Origin Resource Sharing, 교차 출처 리소스 공유의 약자이다. 서로 출처가 다른 웹 애플리케이션에서 자원을 공유하는 것을 말한다. 여기서 출처는 '프로토콜://도메인:포트' 이다. 예를 들자면 http://localhost:8080 이다. CORS에러 [cors에러] 프론트엔드와 백엔드의 출처가 다르면 위와 같은 에러를 심심치 않게 볼 수 있다. 브라우저는 보안상의 이유로 교차 출처 HTTP요청을 제한한..