전체 글

Book/개발 관련 분야 정리

[CS 전공지식노트] IP 주소

컴퓨터와 컴퓨터 간의 통신은 흔히 IP 주소 기반으로 통신한다고 알고 있지만 정확하게는 IP 주소에서 ARP 프로토콜을 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다. 주소 결정 프로토콜(ARP, Address Resolution Protocol) IP 주소(가상주소)를 MAC(실제 주소) 주소로 변환해주는 요청과 응답으로 구성된 프로토콜로 라우팅 되지 않는 단일 네트워크에서만 동작한다. IP와 MAC 주소를 캡슐화 하기 때문에 L2와 L3 사이에 있는 프로토콜로 생각하면 된다. IP ➡️ MAC 역순 주소 결정 프로토콜(RARP, Reverse Address Resolution Protocol) MAC ➡️ IP ARP 확인하는 방법 arp -a 더보기 IP 주소 (Internet Prot..

Programming/Spring

[Spring Security] 권한 부여 처리 흐름

더보기 Authorization(인가, 권한 부여) 인증(Authentication) 과정이 정상적으로 수행된 사용자에게 하나 이상의 권한(Authority)을 부여하여 특정 애플리케이션의 특정 자원(Resource)에 접근할 수 있게 허가 하는 과정 Authorization은 반드시 인증 과정 이후 수행되어야 하며 권한은 일반적으로 역할(Role)의 형태로 부여 된다. Spring Security 권한 부여 처리 흐름 Spring Security 컴포넌트로 보는 권한 부여 처리 흐름 AuthorizationFilter는 SecurityContextHolder로부터 Authentication을 획득한다. SecurityContextHolder로부터 획득한 Suppier과 HttpServletRequest..

Book/개발 관련 분야 정리

[CS 전공지식노트] 네트워크 기초(미완)

네트워크란? 노드(Node)와 링크(Link)가 서로 연결되어 있으며 리소스를 공유하는 집합 노드 서버, 라우터, 스위치 등 네트워크 장치 링크 유선 또는 무선 처리량과 지연 시간 네트워크 구축 시 좋은 네트워크로 만드는 것이 중요하다. 좋은 네트워크란? 많은 처리량을 처리할 수 있다. 지연 시간이 짧다. 장애 빈도가 적다. 좋은 보안을 갖추고 있다. 처리량(Throughput) 링크를 통해 전달되는 단위 시간당 데이터 양 단위 bps(bits per second), 초당 전송/수신되는 비트 수 사용자들이 많이 접속할 때 마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙 등에 영향을 받는다. ✔️ 대역폭 주어진 시간 동안 네트워크 연결을 통해 흐를 수..

Book/개발 관련 분야 정리

[CS 전공지식 노트] 프로그래밍 패러다임

더보기 패러다임(Paradigm)이란? 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테투리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념 - 위키백과 https://ko.wikipedia.org/wiki/%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84 프로그래밍 패러다임(Programming Paradigm)이란? 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론 어떤 언어는 특정 패러다임을 지원함. ex) Java(객체지향) jdk 1.8부터 함수형 프로그래밍 패러다임 지원 - 람다식, 생성자 레퍼런스, 메서드 레퍼런스 등 jdk 1.8부터 선언형 프로그래밍 패러다임 지원 - 스트림(Stream)같은 API 프로그래밍..

Computer Science/Network

[네트워크] 영역별 네트워크 분류 & 인터넷 네트워킹 & 프로토콜

영역별 네트워크 분류 LAN & MAN & WAN LAN(Local Area Network): 근거리 통신망을 의미한다. 같은 건물이나 캠퍼스 같은 같은 좁은 범위에서 연결된 네트워크이다. 이더넷, 와이파이와 같은 기술들 10km 거리 제한 초등학교 컴퓨터실에서 몰래 스타크래프트 하면서 LAN으로 친구들과 만나서 같이 게임 했던 기억이 난다. MAN(Metropolita Area Network) 도시권 통신망을 의미한다. 큰 도시와 같이 넓은 지역의 네트워크이다. DSL전화망, 케이블 TV네트워크를 통한 인터넷 서비스 제공 등 50km 거리 제한 WAN(Wide Area Network) 광역 통신망을 의미한다. 두 개 이상의 LAN들이 연결된 네트워크이다. 지역, 국가, 세상 범위까지 구성된 지리적 거리..

Programming/Spring

[Spring] Controller, Service, Repository

Controller Spring MVC 아키텍처에서 사용자의 요청을 처리하고, 애플리케이션의 흐름을 관리하는 역할 주요 역할 사용자의 요청 처리: 사용자가 애플리케이션에 요청한 내용을 수신하고, 해당 요청을 처리한다. 사용자가 웹 브라우저를 통해 HTTP 요청을 보낼 경우, Controller는 해당 요청을 수신하여 적절한 액션을 수행한다. 비즈니스 로직 호출: 비즈니스 로직을 처리하기 위해 Service 클래스나 다른 Model 계층의 컴포넌트를 호출한다. 사용자의 요청에 따라 필요한 데이터를 가져오고, 비즈니스 로직을 수행하여 결과를 생성한다. 뷰에게 모델 데이터 전달: 비즈니스 로직을 수행한 결과를 View에 전달하기 위해 모델 데이터를 생성하며 이를 통해 View는 사용자에게 데이터를 표시할 수 ..

Programming/Spring

[Spring] POJO(Plain Old Java Object)

POJO는 Spring에서 사용하는 핵심 개념들(IoC/DI, AOP, PSA)을 통해 달성할 수 있음을 의미한다. Spring은 POJO프로그래밍을 지향하는 Framework로 최대한 다른 환경이나 기술에 종속적이지 않도록 하기 위한 POJO 프로그래밍 코드를 작성하기 위해 Spring에서는 세 가지 기술을 지원하는데 그 세 가지 기술이 IoC/DI, AOP, PSA이다. POJO 배경 Spring Framework를 사용하기 전에는 원하는 특정 기술이 있다면 해당 기술을 직접적으로 사용하는 객체를 만들어 사용했는데 프로젝트가 규모가 커지고 필요한 기술들이 늘어나면서 특정 기술과 환경에 종속되는 경우가 빈번하게 발생하였다. 또한, 작성된 코드의 유지/보수가 어렵고 Java에서 상속의 특성상 이미 특정 ..

Computer Science/Network

[네트워크] 네이티브 애플리케이션 VS 웹 애플리케이션

애플리케이션(Application) 시스템 소프트웨어(응용소프트웨어를 실행하기 위한 플랫폼 역할을 하는 소프트웨어)를 제외한 모든 소프트웨어 네이티브 애플리케이션(Native Application) 특정기기(스마트 폰, 태블릿 등등)에 설치하여 사용하는 애플리케이션으로 특정 실행환경에 종속된다.(아이폰 앱을 안드로이드 폰에서 사용할 수 없듯이) 장점 1. 웹 애플리케이션보다 빠르다. 2. 애플리케이션이 설치된 기기의 시스템/기기의 리소스에 접근이 용이하다.(GPS기능이나 카메라 등) 3. 인터넷이 없어도 사용 가능하다. 4. 웹 애플리케이션에 비해 안전하다.(모바일의 경우 앱스토어에 승인을 받아야 함) 단점 1. 웹 애플리케이션에 비해 개발 비용이 비싸다. (아이폰과 안드로이드 간의 멀티 플랫폼 개발 등..

Programming/Java

[Java] 변수의 타입을 확인하는 방법

Generic을 공부하다가 문득 내가 선언한 변수의 타입이 궁금하여 타입을 콘솔에 출력하는 방법을 찾아보았다. 변수명.getClass().getName() example) public class CheckType { public static void main(String[] args) { Integer i = 123; Double d = 123.123; Character c = 'a'; String s = "asdf"; ArrayList arrayList = new ArrayList(); LinkedList linkedList = new LinkedList(); HashSet hashSet = new HashSet(); TreeSet treeSet = new TreeSet(); HashMap hashMa..

Programming/Java

열거 타입 (Enum)

열거 타입(Enum)? 서로 관련이 있는 상수 집합을 정의하는 자바에서 제공하는 열거형 타입 * 참고 상수는 대소문자로 모두 작성이 가능하지만, 관례적으로 대문자로 작성 장점 더보기 타입 안정성 컴파일 시점에 타입 검사를 받기 때문에 런타임 시점에 발생할 수 있는 오류를 사전에 방지할 수 있다. 가독성 이름을 사용하여 가치를 의미적으로 나타낼 수 있으므로 코드의 의도를 쉽게 파악할 수 있다. 유지보수성 상수가 변경될 때, 해당 값을 참조하는 모든 코드를 수정해야 하는 번거로움이 있다. 하지만 Enum을 사용하면 상수 값을 변경하는 것만으로 프로그램 전체에 해당 값을 참조하는 모든 코드가 변경된다. 코드 안전성 Enum은 상수를 캡슐화하기 때문에 상수가 의도치 않게 변경되는 것을 방지하며 싱글톤 디자인 패..

Smile :DK
슬기로운 코딩생활