Study 11

쿠키 2부 : 세션은 쿠키가 필요하다

사용자 인증을 할 때, 쿠키를 사용하면 위험해요. 서버에 데이터를 저장할 때는 세션으로 하는 것이 안전합니다. 실무에서 로그인 및 회원가입은 가장 시작이자 기본이 되면서 중요한 역할을 한다고 볼 수 있습니다. 그 가운데 사용자 인증은 서비스에서 가장 중요하다고 할 수 있는데요!! 위 말은 맞는 말일까요? 많은 사람들이 쿠키와 세션을 서로 대립하거나 세션이 쿠키를 대신하는 기술로 오해하는 것 같습니다ㅠㅠ이번 포스팅은 쿠키와 세션에 대한 오해를 풀고 쿠키를 사용할 수 밖에 없는 이유와 세션을 통한 사용자 인증은 어떻게 하는지 알아보겠습니다!! (지난 내용과 이어지는 내용이니 아직 못보셨다면 다녀오세요😆) https://printf-hellojudyworld.tistory.com/84#comment152683..

쿠키 1부 : HTTP로 설명하는 쿠키

쿠키는 클라이언트에 저장되고… 음.. 보안에 좋지 않습니다. - 그럼 보안을 위해서 쿠키는 안 쓰는 게 좋겠네요? 쿠키가 어떻게 서버와 브라우저 간에 이동을 하는지, 그리고 쿠키의 유효 기간과 적용 범위를 설정하는 방법과 쿠키의 한계와 대체 기술에 대해서 알아보겠습니다. HTTP 쿠키(=브라우저 쿠키, 웹 쿠키)란? HTTP 쿠키(cookie)는 서버가 어떤 데이터를 브라우저 측에 저장한 후 다시 그 데이터를 받아오는 기술, 또는 그 데이터 자체를 뜻합니다. 보통 데이터는 서버와 통신하기 때문에 브라우저에서 데이터를 다룬다는 것에 생소하실 수 있지만, 서비스에 따라 데이터를 매번 서버에서 받아오는 것이 비효율적일 때가 있습니다. 바로 이때, HTTP 쿠키를 사용하게 됩니다. 🔥여기서 잠깐 통신하기 위해서..

[우테코] 3주차 회고록, 또 다른 시작

마지막까지 희망을 버려선 안돼. 단념하는 순간, 그 시합은 끝나는 거야. - - 우테코 1,2주차 프리코스에 참여하며 수많은 사람들이 이렇게 열정🔥러 인지 알게 되었고, 개발에 진심인 사람들이 많구나를 다시 한 번 깨닫는 순간이었던 것 같다. 그 사람들과 함께 가려고 힘들더라도 꾸준히 하는 것을 목표로 하였고, 프리코스에 참여하기 앞서 4주라는 시간동안 열정적으로 몰입해보겠다고 다짐했었는데.. 막상 절반정도 몰입하고나니 일상과 진로의 경계에서 더이상 감당하기 어려워졌다. 핑계대며 시간이 없었다고 말하긴 싫었는데... 갑작스러운 퇴사 및 이직결정과 기타 부가적인 사정들로 인해 프리코스를 더이상 진행하기 어려워졌다. 그래도 매일매일 프리코스 문제를 확인하고, 고민하며 성장하는 시간이 기다려지기도 했는데 부담..

빠르게 실패하기, 어차피 한 번에 성공할 수 없다.

우아한 테크코스 프리코스 2주 차를 보내며 어느덧 3주차가 진행되고 있다. 벌써 세 번째 Fork를 하고 있으며, 이제는 미션을 대하는 자세가 제법 어색하지 않다. 두 번의 PR을 했고, 두 번의 피어리뷰를 진행하며 생각보다 많은 감정들을 지나쳐가게 되는 것 같다. 내가 잘했다고 생각하는 부분이 알고 보면 불필요한 부분이었다던가, 혹은 제대로 의미를 깊이 있게 파악하지 않고 사용했다던가 등 예상치 못하는 일들이 벌어지고 있다. 그 속에서 감정의 소용돌이에 본인을 몰아넣고 있을 누군가에게 응원과 열정을 다시 부어줄 수 있는 감동적인 내용이 있어 소개하려고 한다. 제 전략은 항상 똑같습니다. 가능한 한 빨리 실패해버리자는 거죠. 즉, 망치는 것을 피할 수 없으니 이점을 인정하자는 겁니다. 두려워해서는 안 돼..

[우테코] 2주차 프리코스 회고록

서론 지난 1주차의 엄청난 반성과 깊은 깨달음을 토대로 2주차를 시작했다. 2주차 미션에 앞서 우테코에서 2주차를 설계하며 우테코 코치와 포비가 시사하고자 하는 경험과 목표를 파악하는 것에 중점을 두었다. 2주차 목표 1주차에서 학습한 것에 더해 함수를 분리할 것 각 함수별로 테스트를 작성하는 것 테스트가 처음이라면, 언어별 테스트 도구를 학습해보기 작은 단위의 기능부터 작성해보기 단순하고, 있어보이지 않아도 기본에 충실한 테스트케이스 만들기 요구사항을 잘 파악하기 최대한 스스로 해결해볼 것 무작정 다른 사람의 도움을 받는 것은 지양하기(커뮤니티도 되도록 피하기) 기능을 구현하기 전 기능목록을 만들고, 기능 단위로 commit 하기 commit 컨벤션 지키기 프리코스, 너는 이런녀석이었구나(?) 1주차 ..

equals() 와 hashCode() 동일성과 동등성, 완전범죄하기

자바의 모든 클래스는 Object 클래스를 상속받습니다. 그리고 Object클래스에는 equals() 와 hashCode() 라는 메소드가 선언되어 있습니다. 이 메소드들은 각각 어떤 역할일까요? 이 둘의 차이점은 무엇일까요? equals()와 hashCode() 메서드는 객체 지향 프로그래밍에서 중요한 메서드로, 객체 간의 동일성과 동등성을 다루는 데 사용됩니다. 들어가기 전에 동일성은 Identity = 메모리 내 주소값이 같은지 비교합니다. 동등성은 Equality = 논리적 지위가 동등한지 비교합니다. 예를들어, 애플  아이폰이 2대있다. 두 휴대폰은 기종도 같고 동일한 색상 동일한 스펙을 가지고 있다. 이 두 개의 휴대폰은 동일한가? 답은 아니다. 휴대폰은 각 기기마다 고유 주소가 있고 아이폰..

[우테코] 1주차 프리코스 회고록

*프리코스(precourse)란 프리코스에 대해 모르는 분들을 위해 소개하자면 '우아한 테크코스'에서 시작한 프로그램으로서, 본 교육 프로그램을 진행하기 전 말 그대로 pre(미리) 경험해 보는 온보딩 코스이다. 프리코스로 정해진 기간 동안 참가자에게 매주 미션이 주어지며, 이 미션에는 3가지 요구사항이 함께 전달된다. 참가자는 각자 역량대로 3가지 요구사항을 만족시키는 미션을 수행하여 제출하면 프리코스에 참여하게 된다. 📚프로그래밍 요구사항 📚기능 요구사항 📚과제 진행 요구사항 서론 : 설렘 반, 걱정 반 드디어 우아한 테크코스의 특별한 교육과정 프리코스(pre-course)를 시작했다. 사실 운 좋게도 합격한 소수의 인원만 온보딩 형태로 참여가 가능한 코스였던 작년과 달리 모든 지원자가 프리코스를 경..

REST API/RESTful API Design Guide/REST 디자인 패턴/Http Methods 는 무엇인가 #2

REST의 개념을 이해했다면 이젠 REST API의 디자인을 살펴보고자 한다. REST API Design Guide 1) URL에 Resource를 표현해야 한다. GET /members/1 Resource는 동사보다는 명사를 사용하고 대문자보다는 소문자를 사용하여 표현해야 하고, document(도큐먼트) 이름으로는 단수 명사를 사용해야 한다. collection과 store의 명은 복수 명사를 사용해야 한다. 2) Resource에 대한 행위는 Http Method (GET, POST, PUT, DELETE)로 표현한다. 이때, URL에 Http Method가 들어가면 안 된다. 또한 URL 행위에 대한 동사 표현이 들어가면 안 된다. CRUD 기능을 나타내는 것은 URL에 사용하지 않는다는 것이다..

REST API/RESTful API란/Representational State Transfet API/REST 디자인패턴 쓰는 이유 #1

[공고] Front-end 개발자 채용 저희 회사는 HTTP, RESTful API 클라이언트를 RESTful 하게 개발할 줄 아는 사람을 찾습니다. 최소 3명 이상의 개발팀이 있는 회사가 프런트엔드(Front-end) 개발자를 채용할 때 조건 및 자격요건에 대부분 적혀있는 말이다. 학부 때부터 'REST API로 서비스해야 한다.', '좋으니까 써야 한다.'는 말을 종종 듣곤 했다. 하지만 누군가 나에게 REST API가 뭔데? 왜 써야 하는데?라고 묻는다면 대답할 수 없을 것 같다. 아마 대부분의 개발자들 중에서도 REST API를 정확하게 설명하고 상대를 이해시킬 정도의 개념을 알고 있는 사람이 거의 없을 것이다. 왜냐하면 그냥 "클라이언트(Client)와 서버(Server) 간 데이터를 주고받는 ..

빌드(Build)/Jankins 젠킨스/CI도구 써야하는 이유

오늘 수정사항 서버에 반영(Deploy)해야되니까 빌드(배포하기 위한 준비과정)까지 완성시켜놔. 프로젝트를 하다보면 종종 이런 말을 듣게됩니다. Jenkins 가 무엇인지도 잘 모르는데 무작정 사용법만 익혀 이해해야했던 시간을 되돌려 그 의미와 사용법을 알아봅니다. Build? 빌드란 Jenkins를 이해하기 위해선 빌드의 개념을 이해해야 한다. 빌드는 서버에 올라갈 수 있는 형태로 만드는 것. 예를들어 SpringBoot 어플리케이션을 Maven이나 Gradle로 빌드하여 .jar이나 .war로 만드는 과정이라고 할 수 있다. 빌드 툴의 경우 Java는 Maven과 Gradle이 자리잡고 있으며 이 빌드 관리 툴을 사용하는 것은 빌드 자동화를 하기 위해 즉, 젠킨스와 함께 사용하기 위해서라고 이해해도 ..