반응형

프로그래밍 공부 59

인증(Authentication)과 인가(Authorization)란 무엇인가?

용어정리 '인증'이란? 식별가능한 정보로 서비스에 등록된 유저의 신원을 입증하는 과정입니다. 예) 출입증으로 건물에 출입 할 수 있습니다. '인가'란? 인증된 사용자에 대한 자원 접근 권한 확인입니다. 예) 출입증으로 건물에 출입한 후 자신의 회사에만 갈 수 있는것 (3층이 자신의 회사이고 4층이 다른 회사라면 3층에만 입장가능) 웹에서의 인증과 인가 간단한 게시판이 있다고 가정해봅시다. 해당 게시판에 글을 쓰고싶다면 회원가입, 로그인 과정을 거칩니다. -> 인증 이와 동시에 글을 쓸 수 있는 권한 획득합니다. -> 인가 포함 뿐만 아니라 다른 사람의 글을 읽을 수 있지만 다른 사람의 글을 수정할 수 없습니다. -> 권한이 없기 때문입니다.(인가) 정리 인증과 인가는 자원을 적절한/유효한 사용자에게 전달..

TCP/IP, 3, 4Way HandShaking

인터넷 TCP/IP 설명에 앞서 인터넷이란 무엇인지 간단하게 알아봅니다. 인터넷이란? '전 세계에 걸쳐 파일 전송 등의 데이터 통신 서비스를 받을 수 있는 컴퓨터 네트워크의 시스템' 우리는 실생활에서 인터넷에 가입을하고 사용합니다. 통신비용을 지불함으로써 사용할 수 있습니다. 이것은 사업자가 만들어 놓은 네트워크 인프라를 사용하는 것입니다. 왼쪽은 SK 브로드밴드의 자가망 보유현황이고 우측은 해외와 연결된 네트워크 망입니다. 해외와는 바다 밑에 광속케이블을 통해 연결되어 있습니다. 이러한 거대한 인프라를 통해 데이터를 디지털 신호로 바꾸어 전달하고, 받은 디지털신호를 다시 데이터로 바꿔가면서 네트워크 통신이 이루어집니다. OSI 7 Layer 관련 블로그 참조 https://wonuk.tistory.co..

Process와 Thread

용어정리 프로그램(Program) 어떤 작업을 위해 운영체제 위에서 실행할 수 있는 파일 ex) 웹 브라우저, 워드 프로세서, 카카오톡 등 프로세스(Process) 운영 체제 위에서 실행중인 프로그램 프로그램 명령어와 데이터들이 메모리에 올라오고 실행 중 또는 실행 대기중인 상태 프로세서(Processor) 프로세스가 동작될 수 있도록 하는 하드웨어(=CPU) 동작 프로그램의 자원들이 메모리에 올라오고, 실행 되어야 할 코드의 메모리 주소를 CPU의 레지스터로 올리는 것 실행 단위 - cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념 하나의 cpu core에 한순간에 한개씩 적재되는 것 실행 단위는 프로세스일 때도 있고 쓰레드 일 수도 있습니다. (부연 설명이 없는)프로세스 -..

Spring 컴포넌트 스캔, 의존관계 자동주입

이전 블로그 포스팅 https://wonuk.tistory.com/146 Spring 싱글톤 컨테이너 이전 포스팅 https://wonuk.tistory.com/145 Spring IoC, DI, 컨테이너, 스프링 빈(ApplicationContext) 이전 포스팅 참고 https://wonuk.tistory.com/144?category=1008468 Spring의 객체 지향 적용 SRP, DIP, OC.. wonuk.tistory.com 컴포넌트 스캔 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 이렇게 등록해야 할 스프링 빈이 수십, 수백개가 되면 일일이 등록하기도 귀찮고, 설정 정보도 커지고, 누락하는 문제도 발생..

Spring 싱글톤 컨테이너

이전 포스팅 https://wonuk.tistory.com/145 Spring IoC, DI, 컨테이너, 스프링 빈(ApplicationContext) 이전 포스팅 참고 https://wonuk.tistory.com/144?category=1008468 Spring의 객체 지향 적용 SRP, DIP, OCP Spring의 객체 지향 원리 주문 서비스와 할인정책이 있다. 만약 할인정책(DiscountPolicy)이 변경되려.. wonuk.tistory.com 개요 - 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객..

Spring IoC, DI, 컨테이너, 스프링 빈(ApplicationContext)

이전 포스팅 참고 https://wonuk.tistory.com/144?category=1008468 Spring의 객체 지향 적용 SRP, DIP, OCP Spring의 객체 지향 원리 주문 서비스와 할인정책이 있다. 만약 할인정책(DiscountPolicy)이 변경되려면 public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPol.. wonuk.tistory.com 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다..

Spring 핵심 원리 - 객체 지향 적용 SRP, DIP, OCP

Spring의 객체 지향 원리 주문 서비스와 할인정책이 있다. 만약 할인정책(DiscountPolicy)이 변경되려면 public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 이러한 코드가 만들어진다. 하지만 이것은 문제점이 있다. 문제점 우리는 역할과 구현을 충실하게 분리했다. OK 다형성도 활용하고, 인터페이스와 구현 객체를 분리했다. OK OCP, DIP 같은 객체지향 설계 원칙을 충실히 준수했는..

객체지향(특징, SOLID)과 Spring

스프링 프레임워크 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링 테스트 : 스프링 기반 테스트 지원 언어 : 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd parth(외부) 라이브러리 자동 구성 메트릭, 상..

XML, JSON, YAML이 무엇인가?

본 포스팅은 유튜브 https://www.youtube.com/watch?v=55FrHTNjTCc 기반으로 작성되었습니다. 윈도우 메모장 그리고 Enter키가 없는 키보드가 있는 상태에서 데이터를 보내는 상황을 가정해봅시다. 신문기사라면 단순히 길어지고, 장보기 목록 등은 쉼표로 구분할 수 있습니다. 하지만, 이런 표는 어떻게 보내지게 될까요 이와같이 어떠한 구조를 가진 정보에서 어려움이 시작됩니다. 이를 어떻게 한줄로 이어지는 텍스트로 만들 수 있을지 생각해봅시다. 여기서 가장 널리 사용되는 형식이 XML과 JSON 입니다. 서비스를 구성하는 소프트웨어 사이에는 수많은 정보들이 주고받아 집니다. 사람에게는 표와같은 구조로 데이터를 보내는것이 이해하기 쉽지만 컴퓨터에게는 한줄로 쭉이어진 텍스트로 받아지기..

OSI 7 Layer (계층)

본 포스팅은 유튜브 10분 테코톡을 기반으로 만들어졌습니다. https://www.youtube.com/watch?v=1pfTxp25MA8 1계층 물리계층 (Physical Layer) 두 대의 컴퓨터가 통신하려면? 모든 파일과 프로그램은 0과 1의 나열입니다. 결국 0과 1만 주고받을 수 있으면 됩니다. 두 대의 컴퓨터를 전선 하나로 연결한다고 상상해봅시다. 1을 보낼 때는 +5V의 전기를 전선으로 흘려보내고 0을 보낼 때는 -5V의 전기를 전선으로 흘려보내면 0과 1의 전송이 가능할 것입니다. 0과 1을 주고받을 수 있으면 모든 데이터를 주고받을 수 있으므로 이제 두 컴퓨터는 모든 데이터를 주고받을 수 있게 되었습니다. 그러나, 실제 상황에선 잘 동작하지 않았습니다. 아래 그림으로 설명하겠습니다. s..

반응형