CS
-
객체의 동일성과 동등성CS 2023. 7. 28. 00:50
코드를 짜며 객체끼리 비교하는 데 ==연산자로 똑같다는 결과가 나오지 않는 경우가 있었다. 분명 둘은 같은 값을 담고 있었는데도 말이다. 그래서 찾아보니 객체의 동등성과 동일성이라는 개념이 있었다. 이에 대해 알아보자. 동일성(Identity) 완전히 같다는 의미, 두 객체가 완전히 같다는 것을 의미한다. 그런데 이렇게 설명하면 뭔가 부족하다. 이를 위해 객체를 좀 더 살펴보자. [객체] 객체는 기본적으로 생성 시 메모리에 주소를 갖게 된다. 메모리에는 다양한 영역이 있지만 그중 Heap 영역에 클래스의 인스턴스들의 실제값이 저장된다. 예를 들어 아래와 같은 코드가 있다 Coffee coffee = new Coffee("star coffee"); 이때 생성된 coffee라는 변수명을 위한 공간은 메모리의..
-
서버에서 '세션'이란?CS 2023. 7. 25. 01:00
서버에서 세션을 쓰는 것은 좋지 않다라는 조언을 들은 적이 있다. 기존에 로그인을 공부하며 쿠키, 세션, JWT에 대해서 가볍게 공부했었는데 세션에 대해서 좀 더 정리해보고자 한다. 왜냐면 개발을 하면서 무조건 하나만 쓰기 보단 그 기술의 특성을 잘 이해하고 적재적소에 활용하는 능력이 중요하기 때문. 세션(Session) 사용자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지 같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술 (쉽게 말해 브라우저를 닫을 때 까지 유지된다.) [세션이 오고가는 Process] 사용자가 브라우저에서 서버로 요청을 보낼 때 Request Header의 Cookie에 별도의 세션아이디가 ..
-
템플릿 메서드 패턴 and 팩토리 메서드 패턴CS 2023. 6. 25. 17:48
전체적인 코드의 구조를 정하는 템플릿 메서드를 구현하고 자주 변경되는 부분은 분리하여 하위 클래스에서 구현 및 수정이 가능하도록 하는 패턴 상위 클래스에서 공통적으로 필요한 부분, 변하지 않는 부분은 정의해두어 기본적인 코드 알고리즘의 골격과 흐름은 짜여진 상태, 그 구조 내 사용되는 메서드 중에는 훅 메소드(디폴트 값이 정해져있어 그대로 사용해도 되고 추후 수정해도 되는 것) 또는 추상 메서드(메서드 이름 앞에 abstract를 붙이며 하위 클래스에서 반드시 오버라이딩 후 구현해야하는 메서드)가 들어있다. 이처럼 코드의 구조가 잡혀 있는 메서드를 템플릿 메서드라고 한다. (마치 찍어내는 템플릿 같다.) 이 패턴의 경우 코드의 구조를 보호하고 중복을 최소화하기 위한 용도로 사용하는 것 같다. 객체 생성에..