목록개발 상식 (10)
정리하고기록하자
프로그램 어떤 작업을 위해 운영체제 위에서 실행 할 수 있는 파일 ex ) 웹 브라우저, 워드 프로세스, 카카오톡 등. 프로세스 ( Process ) 운영 체제 위에서 실행중인 하나의 프로그램 프로그램 명령어와 데이터들이 메모리에 올라오고 실행 중 또는 실행 대기중인 상태 즉 실행되고 있는 프로그램으로, 프로세스는 각 메모리 공간을 시스템으로부터 할당 받는다. 실행중인 프로그램 CPU를 할당하는 대상 시스템 내부에서의 작업 단위 PCB ( Process Control Block ) 에 존재하는 개체 하나의 스레드( 프로그램 내의 실행 단위 )로 구성된 테스크 프로세스의 메모리 구조 Code 영역 실행할 프로그램의 코드가 저장된다. CPU는 이 영역에서 명령어를 하나씩 가져와 처리하게 된다. Data 영역..
HTTP의 특징 HTTP 는 비연결성 ( Connectionless ), 무상태성 ( Stateless ) 의 특징을 갖고 있기 때문이다. HTTP 프로토콜은 비연결성 ( Connectionless ) 프로토콜이라 클라이언트가 request를 보내고, 서버는 이에 대한 response를 보내면 연결이 끊어 진다. HTTP 프로토콜은 무상태성 ( Stateless ) 프로토콜이라 request, response를 주고 받은 뒤, 상태 정보를 유지 하지 않은 채 통신이 끝난다. 이러한 특성을 보완 하기 위해서 쿠키와 세션이라는 방법이 존재 한다. 쿠키 쿠키란 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 사용자 인증이 유요한 시간을 명시할 수 있고 유효시간이 정해지면 브라우..
TCP / IP Layer and OSI 7 Layer TCP / IP Layer TCP / IP Layer 는 사실 두 가지 버전이 있다. TCP / IP Original ( 4 Layer ) TCP / IP Updated ( 5 Layer ) OSI 7 Layer 의 Appliaction , Presentation, Session 계층이 Application 으로 통합 되었다. 오늘날에는 TCP / IP Updated 모델을 더 많이 사용한다. TCP/IP 5계층인가요 4계층인가요? 컴퓨터 네트워킹을 독학하고 있는 사람인데 제가 배우는 강의에서는 TCP/IP 5계층이라고 하는데 인터넷에 쳐보니 5계층도 있고 4계층도 있더군요. 공식적으로 5계층이라고 하나요 아... kin.naver.com 애플리케이..
TCP / IP TCP / IP 란 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합이다. TCP : 전송 제어 프로토콜 ( Transmission Control Protocol ) 이며 한 기기에서 다른 기기로 데이터를 전송하는 것을 담당하는 것. IP : 인터넷 프로토콜 ( Internet Protocol ) 이며 이 프로토콜은 데이터의 조각을 최대한 빨리 대상 IP 주소로 보내는 역할을 한다. TCP / IP 의 계층 응용계층 ( Application Layer ) 특정 서비스를 제공하기 위해 애플리케이션 끼리 정보를 주고 받을 수 있다. 사용자가 네트워크에 접근할 수 있도록 한다. 사용자 인터페이스를 제공 할 뿐만 아니라 이메일, 원격 파일 접근 및 전송, 공유 데이터베이스 관..
PSA PSA는 '잘 만든 인터페이스' 라고 한다. 추상화가 굉장히 잘 된 인터페이스 이다. 작업 환경이나 기술이 변하더라도 일관된 방식의 접근 방식을 제공하여 의존성을 크게 고려하지 않아도 되는 구조이다. 스프링에서 Controller, Mapping, Transaction 이런 Annotation등을 클래스나 메서드에 붙이기만 해주면 작동한다. 이것을 가능하게 해주는 것이 PSA 개념이다. PSA는 Portable Service Abstraction의 약자인데 여기서 핵심은 Service와 Abstraction 이다 서비스 추상화 라고 불리는데 이것을 추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공한다는 것을 말한다. Service Abstraction ( 서비스 추상화 )..
DI ( Dependency Injection ) Spring Framework는 IoC Container를 통해 인스턴스 생성을 일괄적으로 진행하고 라이프 사이클 관리 까지 위임한다. 인스턴스의 생성 및 관리의 주체가 IoC Container 이고 의존성을 주입해주기 때문에 제어의 역전이라고 불린다. 의존성을 주입하는 것을 DI ( Dependency Injection ) 이라고 한다. DI는 세가지 방법이 있다. 1. Setter Injection ( 수정자 주입 ) : 의존성을 입력받는 Setter 메소드를 만들고 이를 통해 의존성을 주입받는다. 2. Constructor Injection ( 생성자 주입 ) : 필요한 의존성을 포함하는 클래스의 생성자를 만들고 이를 통해 의존성을 주입 받는다. S..
AOP AOP 란 Aspect OOrented Programming 의 약자로 객체지향프로그래밍보다 더 큰 프로그래밍이다. 즉 '측면/양상 지향적인 프로그래밍' 이라는 의미이다. AOP는 스프링이 아니라 AOP를 구현을 할때 스프링에 도움을 받는다. 스프링과 상관없이 AOP 는 방법론이다. 예전에는 사용자가 원하는 업무 기반의 로직에만 관심이 있었다. 사용자의 주 업무를 분석하고 로직을 구현하는데만 관심이 있었다. 사용자의 업무적인 요구사항 말고, 개발하면서 개발자나 관리자가 사용하기 위해 필요한 코드들이 있다. 프로그램 구현을 하거나 테스트 하기 위해서 필요한 코드들이 있는데 그러한 코드들은 주 업무는 아니고 개발자를 위해서, 관리자를 위해서 부가적으로 추가한 코드들이다. 관점에 따라 다른 업무 분류 ..
현재 진행중인 프로젝트는 JDK 1.7 을 사용 하고 있고, JDK 1.7 -> 1.8 로 변경해야 한다. 이클립스 버전에 따라 호환 되는 JDK 이 다 다르다. 나는 이클립스 2022-03 을 사용했는데 JDK 1.8 버전으로 변경을 해도 계속 에러가 나길래 구글링 한 결과 2020-06 이클립스 버전을 사용해야 JDK 1.8 버전을 읽을 수 있다고 했다. 저기에는 2020-12 버전이 최신인데 2022-03 버전이 JDK 1.8 버전을 못 읽는거 보면 JDK 11 버전으로 읽는 것 같다 ( 내 추측 ) 이클립스 2020-06 버전 다운로드 후 eclipse.ini 파일을 열어 -vm / JDK 파일 경로 /jdk1.8.0_281/bin 추가 했다. 수정 후에 maven > update Project ..
IoC란 IoC( 제어 반전 ) 이란 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다. ( 직접 의존성은 생성하지 않고 누군가에 의해 주입받는다. 의존성 주입!) 이것이 '제어의 역전' 이라고 부른다. IoC 컨테이너 스프링 프레임워크도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 있는데, 그것이 바로 IoC 컨테이너 이다. public interface CarInterface { public void makeCar(); } public class Center { public Center() { System.out.println("--------영업시작합니다--------"); System.out.println("-------------------..
RESTful API - REST 란, REpresentational State Transfer 의 약자이다. 여기에 ~ful 이라는 형용사형 어미를 붙여 ~ 한 API 라는 표현으로 사용된다. 즉 REST 의 기본 원칙을 성실히 지킨 서비스 디자인은 'RESTful' 하다고 표현 할 수 있다. - REST는 하나의 *아키텍처로 볼 수 있다. API 설계의 중심에 자원 ( Resource ) 이 있고, HTTP Method 를 통해 자원을 처리하도록 설계하는 것이다. *아키텍처 : "하나의 서비스가 어떻게 구성이 되며 어떻게 동작이 된다" 라고 표현이 될 거 같습니다. 즉 아키텍처란 서비스의 동작 원리를 나타내는 것이다. *HTTP Method : HTTP 메소드는 클라이언트가 웹 서버에게 사용자 요청의..