728x90

전체 글 44

[네트워크] OSI 7 계층 각 계층별 역할

1계층 물리 계층(Physical Layer) 0,1 나열을 아날로그 신호로 바꾸어(encoding) 전선으로 흘려보내고, 아날로그 신호를 받아 0,1로 해석(decoding)하여 물리적으로 연결된 두대의 컴퓨터가 0,1의 나열을 주고받을 수 있게 해주는 모듈 PHY칩 등에 하드웨어적으로 구현되어 있다. 2계층 데이터 계층(Data-Link Layer) 1계층 통신구조만으로는 여러대의 컴퓨터가 데이터를 주고받기 힘들다 (1:1 연결구조) 전세계의 컴퓨터들은 (스위치, 라우터, 해저케이블 등을 이용한)계층구조로 연결되어있는데 이것을 인터넷이라고 한다. 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고 받기 위해 필요한 모듈 데이터가 연달아 들어올때 (1110001110100...)어디서부터 어디까지..

Web, Network, OS 2022.03.14

SDLC (Software Development Life Cycle) 소프트웨어 개발 생명주기

소프트웨어 개발 생명주기(SDLC)는 하나의 소프트웨어 혹은 애플리케이션이 생성되고 소멸하기까지의 일련의 과정들을 말한다. 개념및 초기화 단계에서 결정된 프로젝트 실행 가능성부터 완성된 시스템 또는 애플리케이션의 프로젝트 종료/유지 관리 단계까지의 여러 단계를 포함하고 있다. 각 단계별로 전략 및 비즈니스 목표를 충족하는 시스템 또는 애플리케이션의 성공적인 구현을 보장하는 도구를 제공한다. SDLC 목표 예상 비용 내에서 약속한 경우 고객의 기대치를 충족하거나 초과하는 품질 시스템을 제공 식별 가능하고 측정 가능하며 반복 가능한 프로세스를 사용하여 품질 시스템을 개발하기 위한 프레임워크 제공 각 시스템 개발 프로젝트가 라이프 사이클 전반에 걸쳐 효과적으로 관리될 수 있도록 프로젝트 관리 구조를 구축 시스..

트랜잭션 격리수준(Isolation level)

트랜잭션 격리수준(Isolation level) 트랜잭션은 원자성, 일관성, 격리성, 지속성을 보장해야 한다. 원자성: 트랜잭션 내에서 실행한 작업들은 모두 성공하거나 모두 실패해야 한다. 일관성: 트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지해야한다. 격리성: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 해야한다. 지속성: 트랜잭션이 성공적으로 끝나면 그 결과가 지속되어야 한다. 트랜잭션이 격리성을 보장하기 위해서는 순차실행을 해야하는데, 이럴 경우 처리 성능이 매우 낮아진다. 이런 제로 트랜잭션의 격리 수준을 4단계로 나누어 정의하고 상황에 맞는 레벨을 사용하도록 한다. READ UNCOMMITTED(커밋되지 않은 읽기) READ COMMITTED(커밋된 읽기) REPETABL..

Web, Network, OS 2022.03.03

[Python] 동시처리/병렬처리 방법

순차처리/동시처리/병렬처리 순차 처리는 하나의 작업을 순차적으로 실행 하는 것. 싱글 코어(single-core), 싱글 스레드(single-thread)에서 처리를 수행하는 상황이 이에 해당되며 파이썬에서는 의도적으로 동시처리를 구현하지 않는 한 항상 순차처리를 수행한다. 동시 처리는 한 사람이 여러개의 작업을 동시에 처리해 나가는 상황이며 파이썬 프로그램에서는 다중 스레드를 사용하는 상황이 이해 해당된다. 병럴 처리는 여러명이 여러개의 작업을 동시에 처리하는 형태를 말하며 파이썬 프로그램에서는 멀티코어로 다중 프로세스를 사용하는 상황 모든 병렬 처리는 동시처리이기는 하나, 동시 처리라고 해서 모두가 병렬 처리인 것은 아니다. 파이썬과 동시 처리 파이썬에서 동시 처리는 다중 스레드나 다중 프로세스를 사..

언어 2022.03.02

다양한 HTTP 상태코드

클라이언트가 보낸 요청의 처리 상태를 알려주는 다양한 응답코드에 대해 알아보자. 2XX(성공) 클라이언트 요청을 성공적으로 처리할 경우의 상태코드 종류 200 ok 201 Created : POST요청 처리 후 리소스를 생성하면 생성된 리소스의 경로가 헤더에 담겨 온다.(Locataion) 202 Accepted: 요청이 접수되었으나 처리완료 되지 않음 204 No Content: 요청은 성공적으로 처리되었으나, 응답페이로드 본문에 담을 데이터는 없는 경우 3XX(Redirection) 요청을 완료하기 위해 유저에이전트릐 추가 조치가 필요하다 3XX를 응답결과로 받으면서 Location 헤더값이 있다면 클라이언트는 Location 위치로 자동이동 종류 1)영구적인 리다이렉션 - 리소스의 URI가 영구적으..

Web, Network, OS 2022.02.28

[HTTP] HTTP Method 종류와 특징

자주 사용하는 HTTP메서드 종류와 각 특징에 대해 살펴보자. GET 리소스를 조회할 때 사용 서버에 전달하고 싶은 파라미터는 query(쿼리 파라미터, 쿼리 스트링)을 통해 전달한다. (메세지 바디를 사용해 전달 할 수도 있으나 비권장) 성공시 응답 메세지 상태값으로 200 OK 가 반환된다. POST 요청 데이터를 처리할 때 사용 메세지 바디를 통해 서버로 파라미터를 전달한다. 서버는 메세지 바디를 통해 들어온 데이터를 처리한다. 주로 전달된 데이터를 신규로 등록하는 프로세스에 사용된다. 신규 자원이 생성되면 응답 메세지로 201 Created 상태값과 함께 신규 생성된 자원의 uri경로를 반환한다. POST의 사용 새 리소스 생성 요청 데이터 처리 : 데이터 생성이나 변경이 아닌 프로세스를 처리할 ..

Web, Network, OS 2022.02.25

[Spring] AOP(Aspect Oriented Programming)와 동작방식

AOP(Aspect Oriented Programming)란? Aspect란, 그 자체로 애플리케이션의 핵심기능을 담고 있지는 않지만, 애플리케이션을 구성하는 중요한 한가지 요소이고, 핵심기능에 부가되어 의미를 갖는 특별한 모듈을 가리킨다.(대표적인 예로 로깅이나 트랜잭션과 같은 기능이 있다.) 대게 애플리케이션은 핵심기능과 여러 부가기능들이 함께 어우러져서 동작하게 되어있다. 따라서 런타임시에는 각 부가기능 애스펙트가 자기가 필요한 위치에서 dynamic하게 참여한다. 하지만 설계와 개발은 서로 다른 특성을 띈 애스펙트들을 독립적인 관점으로 작성할 수 있다. 그리고 이렇게 애플리케이션의 핵심적인 기능에서 부가적인 기능을 분리해서 애스펙트라는 독특한 모듈로 만들어서 설계하고 개발하는 방법을 관점지향프로그..

SpringFramework 2022.02.24

[SpringFramework] Bean과 Bean Scope에 관하여

Bean 스프링에서 Bean이란 스프링이 관리하는 오브젝트를 뜻한다. 빈이 생성되고, 존재하고, 적용되는 범위를 스프링에서는 빈의 스코프(Scope)라고 한다. 스프링에서는 기본 스코프인 싱글톤 외에 다양한 스코프를 가질 수 있는데, 스프링에서 만들어 지는 빈의 다양한 스코프에 대해서 살펴보자. 싱글톤 스코프(Singleton Scope) 스프링 빈의 기본 스코프로, 컨텍스트당 한개의 빈 오브젝트만 만들어지므로 주입이나 조회시 매번 같은 오브젝트가 리턴됨이 보장된다. 강제로 제거하지 않는한 스프링 컨테이너가 존재하는 동안 계속 유지된다. 프로토타입 스코프(Prototype Scope) 싱글톤과는 다르게 컨테이너에게 빈을 요청할 때마다 매번 새로운 오브젝트를 생성해 준다. 프로토타입 스코프는 IOC 기본 ..

SpringFramework 2022.02.23

코드 주석을 최소화 해야하는 이유

불필요한 주석은 코드를 이해하기 어렵게 만든다. 단순히 copy&paste로 주석을 붙이다가 기능에 맞는 내용으로 변경한다는걸 깜박했다거나 시간이 흘러 주석 내용과는 다른 흐름으로 로직이 변했지만 업데이트가 제때 이루어지지 않은 주석 덕분에 레거시 코드를 이해하는데 한참씩 걸리곤 할 때가 있다. 주석은 꼭 필요할 때만 달아야 한다고 생각하는데, 꼭 필요할 때라는 시점은 코드만으로 로직을 이해할 수 없을 때를 말한다. 주석 없이도 변수명이나 메소드명만으로도 충분히 이해할 수 있는 내용의 코드라면 굳이 왜 주석을 달아야 하는가? 나는 컨트롤러나 서비스 메소드위에 다는 주석을 지양하는 편인데 param, return Type이 바로 밑에서 확인할 수 있는데 기본 4-5줄씩 차지하는 주석을 굳이 써야하는가?? ..

[테스트 에러]Execution failed for task ':test'.> No tests found for given includes

Gradle 기본 프로젝트를 하나 생성한 후, 간단한 테스트를 해보려고 했는데, 다음과 같은 오류가 발생했다. 테스트 코드는 분명 존재 하는데, No tests 라니.. 분명 아래와 같은 테스트 클래스와 테스트 코드는 존재 했다. [해결] Prerferences > Build, Execution, Deployment > Build Tools > Gradle 에서 Run tests usinng: IntelliJ IDEA 로 바꿔주면 된다.

에러모음 2021.06.29
반응형