본문 바로가기

IT

스프링 의존 관계 주입(DI) 자동차의 바퀴를 교체하기 위해서 우리는 자동차 전체를 교체할 필요 없이 우리는 바퀴만 바꿔 갈아끼우면 된다. 객체 지향 프로그래밍에 장점이 이것이라고 생각한다. 클래스의 변경이 필요하면 다른 클래스의 영향을 끼치지 않으면서 변경이 가능하도록 우리는 구현이 가능하다. 이러한 작업을 더 수월하게 진행할 수 있도록 도입된 기능이  DI(Dependency Injection)와 IoC(Inversion of Control) 이다. 자바로 객체를 생성할 때 우리는 new 연산자를 이용하여 리모콘을 생성하여 사용하였다. 하지만 DI는 컨테이너가 new하지 않고 직접 인스턴스를 생성시켜주는 작업을 말한다. 코드에 직접적인 연관 관계가 발생하지 않아 느슨한 결합이 가능하다. 심지어 싱글톤으로 하나만 사용되기 때문에 무.. 더보기
스프링 어노테이션 정리 어노테이션은 사전적 의미로는 주석이라는 뜻이다. 자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터를 위한 데이터)라고 볼 수 있다.어노테이션의 용도컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공실행시(런타임시)특정 기능을 실행하도록 정보를 제공기본적으로 어노테이션을 사용하는 순서는 다음과 같다.  1. 어노테이션의 정의  2. 클래스에 어노테이션을 배치  3. 코드가 실행되는 중에 Reflection을 이용하여 추가정보를 획득하여 기능실시 @PathVariable메서드 인자에 .. 더보기
Spring Security 💡 스프링 시큐리티(Spring Security)란?스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 즉 인증(Authenticate, 누구인지?) 과 인가(Authorize, 어떤것을 할 수 있는지?)를 담당하는 프레임워크를 말한다.스프링 시큐리티는 주로 서블릿 필터와 이들로 구성된 필터체인을 통해 웹 요청에 대한 보안 관련 처리를 수행한다. 서블릿 필터란 HTTP 요청을 가로채 전처리 및 후처리를 수행할 수 있도록 만들어진 자바 표준 기술이다.필터는 체인으로 구성될 수 있으며, 하나의 필터가 자신의 역할을 한 후 요청과 응답 객체를 다음 필터로 넘길 수 있다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서.. 더보기
인터페이스와 추상클래스 추상클래스1️⃣ 정의보기추상 클래스는 여러 클래스들의 공통적인 특징을 포함하는 미완성 설계도이다.A클래스, B클래스, C클래스가 있다고 가정하면 여기서 각 클래스 안에는 각자의 필드와 메서드가 존재한다. 추상 클래스는 A클래스, B클래스, C클래스들 간에 비슷한 필드와 메서드를 공통적으로 추출해 만들어진 클래스다.일반 클래스의 공통적인 부분을 추출해 어느 정도 규격(틀)을 잡아 놓는 추상적인 클래스이다.추상 메소드는 추상 클래스 내부에서 선언이 가능하며 자식 클래스에서 반드시 오버라이딩 해야만 사용할 수 있는 메소드를 의미한다.추상 클래스는 인터페이스의 역할도 하면서 클래스의 기능도 가지고 있는 자바의 돌연변이 같은 클래스이다.오버라이딩 =>  💡 오버라이딩(overriding)이란 상속 관계에 있는 .. 더보기
GC(Garbage Collection) GC는 무엇인가Garbage Collection의 약자로 개발자가 메모리를 직접 해제해주는 작업 없이 동적으로 할당된 불필요한 메모리를 자동으로 해제해주는 메모리 관리 기법 GC가 필요한 이유프로그래머가 동적으로 할당된 메모리 영역의 전체를 완벽하게 관리할 필요가 없어져 불필요한 작업이나 메모리 누수를 방지할 수 있다. GC의 대상이 되는 Heap 영역힙(Heap)영역은 다음과 같이 Young generation, Old generation 두 가지로 나뉘어지고Young generation에서 일어나는 GC를 Minor GC, Old generation는 Major GC라 한다.Young generation는 새로운 객체들이 할당되는 영역, Old generation은 Young generation에서 .. 더보기
애자일 방법론 애자일 방법론 이란, 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구 사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 프로세스 모델 방식개발 기간이 짧고 신속하다.개발과 함께 즉시 피드백을 받아서 유동적으로 개발할 수 있다.가장 고객의 요구에 잘 대응할 수 있는 방법론애자일 방법론은 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수의 프로세스와는 비교가 많이 되는 반대의 개념이다. 계획이나 문서가 아닌 실질적인 코딩을 중요시하고 짧은 개발 주기를 반복하여 위험 요소를 최소화 시킨다.유형XP, 스.. 더보기
웹 동작 원리 IP 주소: Internet Protocol address, IP address 는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다.도메인 이름(Domain Name)그렇기에 이러한 IP 주소를 문자로 표현한 주소를 Domain Name이라고 한다.다시 말해, 'naver.com'처럼 몇 개의 의미 있는 문자들과 점(.)의 조합으로 구성된다.: IP 주소는 12자리의 숫자로 이루어져 있기에 외우기가 힘들다.DNS도메인 네임으로 입력하면 DNS를 이용해 컴퓨터는 IP 주소를 받아 찾아갈 수 있다: 도메인 이름은 사람의 편의성을 위해 만든 주소이기에 실제로는 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 작업이 필요하다. 이때 사용할 수 있도록 미리 도메인 이름과 함.. 더보기
TCP연결 3,4-way handshake 3-Way handshake정의TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에먼저정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다[STEP 1]A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.[STEP 2]B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.[STEP 3]A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루.. 더보기

728x90