일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인프런
- WIL
- 자바스프링
- 인텔리제이
- 김영한
- 프로그래머스
- unmappable character for encoding MS949
- 에러해결법
- MS949
- PUT과 PATCH
- jwt
- TIL
- 독서
- 알고리즘
- HTML
- java.sql.SQLException
- java
- 객체지향
- 항해99
- 스파르타코딩클럽
- org.h2.jdbc.JdbcSQLSyntaxErrorException
- mysql
- ServerSelectionTimeoutError
- API
- 자바
- Code
- .decode('utf-8')
- 스프링시큐리티
- JSESSIONID
- 엔터키 이벤트
- Today
- Total
목록항해99 7기 (35)
고을마을 : 나의 코딩 이야기

뜬금없이 우리 조가 만든 서비스에 카카오로 회원가입한 아이디와 비밀번호를 일반로그인에 기입해 send를 눌러봤다. 근데 비밀번호가 틀렸다는 오류가 반환되는게 아닌가? 이유는 첫 소셜로그인일 경우 DB에 저장될때 private void registerKakaoUser(KakaoUserInfo kakaoUserInfo) { String password = UUID.randomUUID().toString(); String encodedPassword = passwordEncoder.encode(password); System.out.println("registerKakaoUser"); System.out.println(kakaoUserInfo.getKakaoMemberId()); User kakaoUser =..
자유로운 회원가입과 로그인을 지향했으나 구글폼 회원들의 의견에는 회원가입 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에 대한 약간의 이해 정도... 클론코딩 주차에는 많은 것을 얻어갔으면 좋겠다.