분류 전체보기

    [IT기획 인턴] 서한그룹 드림버스컴퍼니 - 공통 교육

    [IT기획 인턴] 서한그룹 드림버스컴퍼니 - 공통 교육

    안녕하세요! 오랜만입니다. 이 블로그를 시작한 이래로, 작년이 제일 글도 적고 조용했던 시기가 아니었나싶습니다. 스타트업에서 3개월간 일해보고, 그 외 개발과 상관 없는 다양한 경험을 많이 했어요. 여기는 개발 블로그라고 못박아둬서 그런지 손이 잘 가지 않았고 일상 블로그에만 잔뜩 글을 썼었네요.. 여름 이후로 개발은 많이 하지 못했지만 그동안 면허도 따고 토스도 도전했답니다 ! ~~ 자세히는 말씀드리지 못하지만, 이런 저런 경험을 하고난 후.. 그래도 개발이 적성에 맞고 잘 할 수 있는 일이라는 생각이 들었어요. 그래서 개발자로 취업준비를 본격적으로 하기 시작하던 참에, 고용노동부와 코멘토가 주관하는 일경험프로그램인 드림버스컴퍼니 프로그램을 알게되었습니다. 개발 인턴은 아쉽게도 마감기한이 지나 지원하지..

    Mac에서 git branch했을 때 출력창이 길어지는 문제

    Mac에서 git branch했을 때 출력창이 길어지는 문제

    문제 * develop main ~ ~ ~ ~ (END) q를 누르면 종료 가능합니다! 하지만 넘 불편하네요 바꿔봅시다 해결 참고한 포스팅 https://stackoverflow.com/questions/51015733/git-branch-end-on-terminal

    Access Token의 취약점과 Refresh Token을 어떻게 써야하는지

    Access Token의 취약점 Access Token은 암호화 보다는 서명에 초점을 맞춘 토큰이므로 탈취 당할 위험성이 있다. 보통 Access Token에는 중요한 정보를 담지 않아서 탈취당하더라도 별 문제가 없다. 그러나 서비스 이용자에게 권한을 부여하는 경우에는 문제가 될 수 있다. Access Token은 발급된 이후 서버에 저장되지 않고 토큰 자체로 검증을 하여 사용자 권한을 인증하므로, 기한이 만료되기 전 까지 토큰을 탈취한 사람은 권한 접근이 가능해진다. Access Token은 발급한 후 삭제가 불가능하므로 토큰 유효기간을 짧게 설정하는 것이 해결책이 될 수 있지만, 그만큼 사용성이 떨어지는 단점이 있다(새로 Token을 발급받기 위해 로그인을 자주 해야함). ⇒ Access Token의..

    비밀번호 암호화 함수로 Bcrypt를 사용하는 이유

    비밀번호 암호화를 할 시 bcrypt를 추천하는 글들이 많았다. 스프링에서도 BCryptPasswordEncoder 사용을 권장하는데, 왜 그런지 궁금해서 찾아보았다. 해시 함수의 취약점 SHA, MD5 등의 해시 함수는 메시지 송수신시 무결성 검사를 위해 개발되었으며 이로 인해 빠른 처리속도로 보안에 취약하다(GPU를 사용하면 레인보우 테이블을 매우 빠르게 만들 수 있다). 따라서 패스워드 암호화에는 적합하지 않다. 해시 함수의 문제점을 보완해서 나온 암호화 함수에는 pbkfd2와 bcrypt 등이 있다. 이 둘은 salt와 같은 랜덤 문자열을 섞고 반복적인 해싱작업으로 해시를 강하게 한다. (함수 반복 횟수를 늘리면 연산속도를 늦출 수 있으므로 brute-forece 공격에 대비할 수 있기 때문) b..

    [Numble 챌린지 개발일지] 5주차 (1) 로그아웃 리디렉션 해결

    [Numble 챌린지 개발일지] 5주차 (1) 로그아웃 리디렉션 해결

    앞서 쿠키의 secure 설정을 true로 하면 https로만 통신해야하기 때문에 마감일정이 촉박한 이 시점에서 😭 서버에 SSL 인증서까지 발급받아 적용하기에는 시간적 무리가 있었습니다. 그래서 일단 http 쿠키의 secure 옵션을 false로 해뒀습니다. 이어서 포스트맨으로 로그인, 로그아웃 테스트를 해보았습니다. 이렇게 Authorization 헤더에 액세스 토큰이 담겨오고, 쿠키에는 리프레쉬 토큰이 담겨옵니다. 포스트맨에는 쿠키가 자동으로 설정됩니다. 로그인이 되었으니 로그아웃을 테스트를 해보겠습니다! 참고로 스웨거에서는 쿠키를 받을 수 없는 문제가 있습니다. 원인은 아래와 같습니다. 왜 Swagger는 쿠키를 받을 수 없을까 + 해결방법 참고한 포스팅 쿠키 인증은 웹 페이지가 프로그래밍 방식..

    [Numble 챌린지 개발일지] 4주차 (2) JWT 사용해서 로그인 구현

    [Numble 챌린지 개발일지] 4주차 (2) JWT 사용해서 로그인 구현

    수정중입니다~ JWT를 사용한 이유와 JWT가 무엇인지, 쿠키-세션 방식과의 차이는 무엇인지는 따로 포스팅하도록 하겠습니다. 로그인 관련 API 설계는 다음과 같습니다 /login 로그인 /login/{userType} SNS 로그인(카카오 로그인) /refresh Access Token 재발급 요청 /logout 로그아웃 Refresh Token 처리에 대해서 프론트 분께서 이 포스팅을 참고해 진행해보자고 제안하셨습니다. 안그래도 어떻게 토큰을 전달해야 안전할 지 고민이 되서 찾아보고 따로 정리해뒀는데 그 내용과 결론이 같아서 기뻤습니다~~! (여기에 뒤늦게 포스팅했습니다 👀) Access token은 공식규격이니까 헤더에 싣고, Refresh token은 그럴 필요없으니 보안을 위해 http only..

    [Numble 챌린지 개발일지] 4주차 (1) 회원, 모임 로직 구현하기

    [Numble 챌린지 개발일지] 4주차 (1) 회원, 모임 로직 구현하기

    챌린지를 진행하는 중에는 일정이 너무 빠듯해서 이때 부터는 개발 일지를 제때 올리지 못했는데요, 이제 쌓아둔 노트를 하나둘씩 정리해서 포스팅 해보려 합니다 😏 제가 맡은 기능은 다음과 같습니다. Swagger-UI 설정 및 예시 코드 작성 ✔ 자체 회원 가입/로그인 & 카카오 API를 사용한 회원 가입/로그인 기능 구현 이메일을 아이디로 하며, 이메일과 닉네임은 unique한 값 6km이내의 지역을 기준으로 동네 소속이 바뀜 시간 관계상 비밀번호 찾기나 아이디 찾기 등의 기능은 생략 로그인을 하면 로그아웃을 하거나 한 달이상의 시간이 지나기 전에는 회원정보를 들고있어 메인 url에 접속하면 화면이 랜딩됨 회원 조회/수정/탈퇴, 로그아웃 기능 구현 프로필 화면에서 프로필 사진 변경, 닉네임 수정, 로그아웃..