Computer Science 35

Software Design : Object, DTO, VO 비교하기

PS. 셋은 엄밀히 말하면 다른 용어입니다. 제가 알아본 바에 따르면 VO의 불변성에 의해 Setter를 쓰지 않는 것이 원칙이지만, 실무에서 간혹 VO(값 객체)에 Setter를 사용하기도 하는 것을 확인했습니다. 그리고 그렇게 했을 때 사실상 클래명만 VO로 하는 경우도 많아 프로그램이 동작하는 데에도 차이가 없었습니다.  Object : 엔터티(데이터베이스에서의 용어), 객체(프로그래밍에서의 용어) VO(Value Object) : 값 객체, 불변 객체불변성(Immutable) : Setter와 같은 가변 로직이 없는 불변 상태여야 한다.동등성(Equality) : VO 객체의 주소 값이 다르더라도 값이 같다면 동등한 객체로 판단한다.자가 유효성 검사(Self-Validation)// VO (Val..

디자인 패턴의 종류 (2) Factory Pattern

➡️ 팩토리 패턴 (Factory Pattern)객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화하는 디자인 패턴이다. 즉, 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 형태를 갖는다.public abstract class RobotFactory { abstract Robot createRobot(String name);}public class SuperRobotFactory extends RobotFactory { @Override Robot createRobot(String name) { switch(name) { case "super" : return new SuperRobot(); case "pow..

디자인 패턴의 종류 (1) Singleton Pattern

➡️ 싱글톤 패턴 (Singleton Pattern)객체지향 프로그래밍(OOP)에서 사용되는 디자인 패턴 중 하나로, 하나의 클래스에 대해 프로그램의 전체서 하나의 인스턴스만 가지는 소프트웨어 설계 패턴이다. 여러 개의 인스턴스로 만든다는 것의 의미는 메모리에 여러 번 각기 다른 인스턴스를 할당하는 것을 의미하는데, 그러지 않고 한 번만 메모리를 할당하여 여러 클래스에서 이를 공유하여 사용하는 방식이다. 하나의 인스턴스를 만들어 놓고 다른 여러 모듈에서 사용하기 때문에 인스턴스 생성 비용이 줄어드는 장점이 있는 반면, 의존성이 높아진다는 단점이 있기 때문에 이를 고려하여 해당 패턴을 사용해야 한다. 이러한 생성 비용이 중요한 데이터베이스 연결 모듈에 많이 사용되는 패턴으로 가장 많이 사용되는 디자인 패턴..

Web : 서버의 종류 (Static/Dynamic Web Server, WAS, Apache Tomcat)

➡️ 서버의 종류“서버란 정보를 제공하는 역할을 하는 것을 통칭하는 용어이며, 클라이언트는 정보를 요청하고 제공 받는 역할을 하는 모든 것을 가리킨다. 즉, 서버와 클라이언트는 우리에게 친숙한 물리적 컴퓨터와 같은 하드웨어일 수도, 가상머신과 같은 소프트웨어일 수도 있다."CF. 엄밀히 말하면 정확하진 않지만 이해를 위한 포함관계 설명 : 웹 서버, 웹 애플리케이션 서버, 서블릿 컨테이너는 역할이 맞물려있어 많이들 헷갈려하곤 하는데, 이들을 보다 직관적으로 이해하기 위해 포함관계를 말하자면 다음과 같다. 웹 애플리케이션 서버 vs. 웹 서버 : 웹 애플리케이션 서버는 웹 서버의 기능을 포함하면서도 동적 웹 애플리케이션을 실행할 수 있는 서버이므로 더 큰 개념으로 이해할 수도 있지만, 웹 서버와 웹 애플리..

Web : 데이터 송수신과 HTTP 요청

웹 상에서 클라이언트와 서버 간의 데이터 송수신은 HTTP 요청을 통해 이루어진다. 데이터 송수신에서 전송할 수 있는 데이터의 형식은 여러가지다. 또한, HTTP 요청에도 용도와 요구 사항에 따라 몇 가지 방식이 설계되어 있다. 그림으로 스프링부트와 리액트와 관련된 웹 상에서의 데이터 송수신 과정을 실펴보기 앞서, 데이터의 유형과 목적에 따른 데이터의 형식과 HTTP 요청 방식에 대해 알아보자.  ➡️ 데이터 전송 형식✅ URL 쿼리 문자열 (Query Parameters) : URL의 쿼리 문자열에 데이터를 포함하여 전송하는 형식이다. EX. GET /api/products?category=electronics&price=low ✅ Plain Text : 일반 텍스트 형식으로 데이터를 전송한다. Con..

Web : 하이퍼텍스트와 하이퍼링크

하이퍼텍스트(Hyper Text)란, 문서 내부에 또 다른 문서로 연결되는 참조를 집어 넣음으로써 웹 상에 존재하는 문서끼리 서로 참조할 수 있게 하는 기술을 의미한다. 모든 웹 페이지에는 웹 주소(URL, Uniform Resource Locator)가 있는데, 그 주소를 이용하여 문서 내부에서 또 다른 문서로 연결해주는 기술을 하이퍼링크(hyperlink)라고 부른다.

Web : 웹 애플리케이션 구조와 동작 원리

네트워크 상에서 제공되는 경우,대부분의 웹 프로젝트는 데이터베이스에 저장된 상태로 존재하고데이터베이스에 저장된 웹 프로젝트는 요청을 받아 서버를 거쳐 브라우저에 제공된다.   구글, 네이버과 같은 브라우저를 열어서 검색 창에 특정 주소를 타고 들어갔을 때 일어나는 과정 살펴보자.  이는 개발한 웹 프로젝트를 배포하면 사용자가 어떻게 그 프로젝트를 사용하는지에 관한 내용이다. 지금부터 이 일련의 과정에 대해 계속 공부할 예정이다.  웹 애플리케이션 구조 및 동작 원리: 웹 애플리케이션은 요청과 응답으로 동작한다. 웹 브라우저에 주소를 작성하여 [이동] 버튼을 클릭하는 것은 주소가 나타내는 페이지를 요청한 것에 해당한다. 또한, 로그인 폼에 아이디와 비밀번호를 입력하고, [로그인] 버튼을 클릭하면 로그인 처..

Web : 웹의 개념과 관련 용어 요점정리

“웹은 네트워크 공간에서 제공되는 서비스 중 하나다.”➡️ 웹 관련 용어웹을 이해하기 위한 배경지식을 쌓아두자  ✅ 웹 페이지(web page) : 웹에서 표시할 수 있는 문서를 의미하기 때문에 ‘웹 문서’라고도 부르고, 그냥 ‘페이지’라고도 한다. 이것 또한 하나의 소프트웨어로 HTML로 작성되어 있다는 특징이 있으며, 디바이스의 모니터를 통해서 보는 화면이 ‘웹 페이지 1개’에 해당한다. 웹 페이지는 다양한 정보(글, 그림, 동영상, 등)를 담고 있으며, 마우스로 클릭하면 다른 웹 페이지로 이동할 수 있는 링크(하이퍼링크)들이 존재한다. 즉, 이러한 링크들을 통해 여러 개의 웹 페이지들이 연결되어 하나의 웹 사이트를 구성하고 있다. 이렇듯 웹 페이지는 여러 문서가 연결될 수 있는 특성을 가지고 있기 ..