본문 바로가기

전체 글68

[Spring] IoC(Inversion of Control)란? IoC(Inversion of Control) 제어의 역전으로, 객체의 생성/의존 관계 설정/생명주기 관리까지 모든 객체에 대한 제어권이 역전된 것을 의미합니다. 즉 객체를 제어하고 관리하는 역할이 개발자로부터 스프링 컨테이너(외부)로 역전된다는 뜻입니다. 의존성을 역전시켜 객체 간의 결합도(의존도)를 줄이고 유연한 코드를 작성할 수 있습니다. 코드의 재사용성이 좋아지고, 유지 보수가 편해집니다. 2023. 12. 27.
[기타] REST, REST API, RESTful이란? REST의 정의 - "Representational State Transfer" 의 약자. - 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다. - 즉, 자원(resource)의 표현(representation)에 의한 상태 전달을 뜻합니다. 자원: 해당 소프트웨어가 관리하는 모든 것 ( 문서, 그림, 데이터, 해당 소프트웨어 자체 등 ) 표현: 그 자원을 표현하기 위한 이름 ( DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함 ) 상태 전달: 데이터가 요청되는 시점에 자원의 상태를 전달한다. ( JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적 ) - REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용.. 2023. 12. 27.
[기타] 쿠키와 세션의 차이 쿠키 - 쿠키는 클라이언트(로컬)에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 이러한 쿠키는 클라이언트에 저장되어 필요 시 정보를 참조하거나 재사용할 수 있습니다. 세션 - 세션은 일정 기간 동안 사용자(클라이언트)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술입니다. - 세션은 쿠키를 기반으로 하지만, 쿠키와 다르게 서버 측에서 저장하고 관리합니다. - 서버는 세션 ID를 이용해 클라이언트를 구분하며, 웹 브라우저가 서버에 접속해 브라우저를 종료할 때까지 세션을 유지합니다. 쿠키와 세션의 차이 - 쿠키는 클라이언트에 저장되지만, 세션은 서버에 저장됩니다. - 세션은 서버에 저장되므로 서버의 자원을 사용합니다. - 반면에 쿠키는 클라이언트에 저장되므로, 서.. 2023. 12. 27.
[기타] HTTP와 HTTPS HTTP (Hypertext Transfer Protocol) 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다. 웹 통신에서 사용되는 기본 프로토콜. 웹 페이지의 검색 및 표시를 허용. HTTP는 요청과 응답의 형태로 이루어지며 클라이언트는 HTTP에 요청을 보내고 서버는 해당 요청에 대한 응답을 반환. but) 전송되는 데이터에 대한 암호화는 제공하지 않음. HTTPS (Hypertext Transfer Protocol Secure) HTTP와 달리 웹 통신에 더 높은 수준의 보안을 제공하도록 설계되었습니다. 즉, 프로토콜에 암호화가 추가된 보안 프로토콜. 웹 서버와 클라이언트의 브라우저 간에 전송되는 데이터를 암호화함으로써 HTTPS는 정보가 기밀로 유지되고 악의적으로.. 2023. 12. 26.
[Spring] Spring과 SpringBoot의 차이 Spring vs SpringBoot 스프링은 기존 의존성 설정 시, 설정 파일이 매우 길고 모든 의존성에 대해 버전 관리도 하나하나 해줘야 했습니다. 반면에 스프링 부트는 starter 의존성 그룹을 통하여 보다 쉽게 설정할 수 있고 자동으로 버전을 관리해줍니다. 또한, 스프링 부트는 스프링과 달리 내장형 톰캣으로 별도의 서버 설치 및 설정이 필요 없어졌으며, 이로 인해 독립적으로 실행이 가능하여 jar 파일로 손쉬운 배포가 가능합니다. 그리고 스프링 부트는 “자동 구성” 기능을 통해 프로젝트 시작에 필요한 스프링과 외부 라이브러리의 빈을 자동으로 등록해줍니다. 2023. 12. 26.
[Spring] MVC 패턴 MVC 패턴 - MVC 는 Model, View, Controller의 약자로서 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성 요소를 세 가지의 역할로 구분한 디자인 패턴입니다. Model - 애플리케이션의 정보(데이터) 정의 및 가공, 그리고 비즈니스 로직을 나타냄. View - 클라이언트(사용자)에게 보여지는 사용자 인터페이스 요소(화면), Model의 데이터를 표시. Controller - Model과 View를 연결시켜주는 역할. MVC 패턴의 장단점 장점 역할의 분리로 코드의 재사용성과 유지 보수성이 향상된다. 테스트에 용이하다. 단점 규모가 커질수록 파일이 많아져 복잡해질 수 있다. Cf) 디자인 패턴 2023. 12. 26.
[기타] 디자인 패턴 디자인 패턴 - 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대하여, 설계의 노하우를 축적하여 그 방법에 이름을 붙여서 재사용하기 좋은 형태로 규약을 만들어 정리한 것입니다. - 즉 "효율적인 코드를 만들기 위한 방법론". Ex) 싱글톤 패턴 - 디자인 패턴 종류 중 하나로, 하나의 클래스에 오직 하나의 객체 인스턴스만 가지는 패턴입니다. - 클래스의 인스턴스가 하나임을 보장하고 접근할 수 있는 전역적인 접근점을 제공하는 패턴입니다. - 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 어디에서든 공유하며 접근, 사용할 수 있습니다. 장점 - 인스턴스가 단 하나이기 때문에 인스턴스를 생성할 때 드는 비용이 줄어듭니다. 단점 - 멀티스레드 환경에서 객체가 1개 이상 생성되어 오류 발생의 여.. 2023. 12. 26.
[기타] Web Server와 WAS의 차이 Web Server - 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버입니다. - 정적 컨텐츠란, 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠입니다. - ex) Apache, IIS, Nginx 등 WAS(Web Server + Web Container) - DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버이며, 주로 데이터베이스 서버와 함께 수행합니다. - ex) 톰캣, JBoss, Jeus 등 - 웹 컨테이너 혹은 서블릿 컨테이너로도 불린다. Cf) Web Container - 동적인 데이터들을 처리하여 정적인 페이지로 생성해주는 소프트웨어 모듈입니다. - 내부 로직을 .. 2023. 12. 26.
[JAVA] 제네릭(Generic)이란? 제네릭(Generic)이란? - '타입을 일반화' 하는 것으로 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자 호출에 의해 타입이 지정되는 것을 의미합니다. - 즉, 특정 타입을 미리 지정해주는 것이 아닌, 필요에 의해 여러 가지 타입을 사용하고 싶은 경우 사용합니다. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있습니다. 타입에 대해 유연성과 안정성을 확보할 수 있습니다. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아집니다. 2023. 12. 25.
[JAVA] 추상 클래스와 인터페이스 설명 및 차이 추상 클래스 - 추상 클래스는 클래스 내 추상 메소드가 하나 이상 포함되거나 abstract로 정의된 것을 말합니다. 인터페이스 - 인터페이스는 모든 메소드가 추상 메소드로만 이루어져 있는 것을 말합니다. 공통점 - new 연산자로 인스턴스 생성이 불가능합니다. - 인터페이스 혹은 추상 클래스를 상속받아 구현한 구현체의 인스턴스를 사용해야 합니다. - 인터페이스와 추상 클래스를 구현, 상속한 하위 클래스는 상위에서 선언한 추상 메소드를 반드시 구현해야 합니다. 차이점 - 인터페이스는 그 인터페이스를 구현하는 모든 클래스에 대해 특정한 메소드가 반드시 존재하도록 강제함에 있습니다. - 추상 클래스는 상속받는 클래스들의 공통적인 로직을 추상화 시키고, 기능 확장을 위해 사용합니다. - 추상 클래스는 다중상속.. 2023. 12. 25.
반응형