Study/cs (computer science) 7

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

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

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

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

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

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

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이 자리잡고 있으며 이 빌드 관리 툴을 사용하는 것은 빌드 자동화를 하기 위해 즉, 젠킨스와 함께 사용하기 위해서라고 이해해도 ..

프레임워크(Framework)와 라이브러리(Library)의 차이는? - 1탄

학부 때부터 프레임워크는 느낌으로는 뭔지 알겠으나 명확하게 설명할 수는 없었다. 단순히 프레임워크는 뼈대다. 이걸 왜 이해 못 해?라고 할 수 있겠지만 놀랍게도 나에겐 2년간 와닿지 않는 의미였기에 이번 포스팅을 통해 확실하게 정리하고자 한다. 이번 프로젝트에서는 springboot 프레임워크를 쓰고... jquery 라이브러리 사용해서... 그래서 둘 차이가 정확하게 뭐예요? 쉽게 말해 우리가 프로젝트를 구성할 때를 생각해보자. 처음 이클립스나 스프링을 켜서 [File]-[New]-[Maven Project]로 프로젝트를 생성하고 Group Id부터 Artifact Id 등 많은 것들을 하나씩 지정하고 만들게 된다. 이때, 만약 같은 패턴의 프로젝트를 만들어야 한다면 위와 같은 과정을 반복하며 같은 구..