분류 전체보기 512

교착상태

교착 상태(Deadlock) 10분 테코톡을 듣고 작성한 글입니다. 영상링크 바로 직전 학기에 전공과목인 운영체제를 들어서 교착상태에 대해 기억이 아주 생생한 상태! 복습한다고 생각하고 들었당. 교착 상태 개념 프로세스나 쓰레드가 결코 일어날 수 없는 특정 이벤트를 기다리는 상태를 교착 상태라고 말한다. 실제 시스템에서의 교착상태는 요청이 많이 발생하는 DB에서 흔하게 발생한다. 그 중에서도 MySQL의 상호거래패턴에서 자주 발생한다고 한다. 트랜잭션 1은 A가 B에게 자신의 포인트를 차감하고 상대방에게 전달해준다. 트랜잭션 2는 B가 A에게 자신의 포인트를 차감하고 상대방에게 전달해준다. 두 트랜잭션이 동시에 실행됐다고 가정해보자. 트랜잭션 1은 A의 포인트를 -10 차감하고 lock(점유)을 건다. ..

테코톡 스터디 2021.07.23

컴퓨터 네트워크 계층

네트워크 품질 속도 : 속도가 빠를수록 품질이 좋다. - 대역폭 : 주파수의 범위 + 전송률(data rate, throughput)과 비례관계 ==> 대역폭이 넓으면 속도가 빠름 - 지연시간 : IP 패킷이 한 지점에서 다른 지점으로 이동하는 데 걸리는 시간 신뢰도 : 신뢰도가 높을수록 품질이 좋다. - 일관성 : 일정한 품질을 보장하는가? + 하지만 해결하는 것이 쉽지 않음. 해결하기 위해선 최악의 상황을 위해 자원을 미리 할당해놓아야함. + 네트워크는 효율을 높이기 위해 자원을 미리 할당하지 않는다. - Coverage - 보안 (ex : HTTP vs HTTPS) 네트워크 계층 응용 계층 (Application Layer) 우리가 사용하는 프로그램, 서비스들이 동작하는 계층이다. 이를 통해 분산된..

CS/네트워크 2021.07.23

이펙티브 자바 3판(읽는 중)

꼭 읽어보고 싶었던 책이다. 자바를 사용하는 사람에게 필독서라고 생각한다. 읽는 재미가 있지만 그만큼 난이도가 있는 책이다. 최대한 이해를 하면서 읽으려고 노력 중이고 꼭 완독을 하고 싶다. 현재 Github에 읽은 내용을 정리하고 기록중이다. https://github.com/MinChul-Son/Book-for-Developer/tree/main/Effective%20Java%203E GitHub - MinChul-Son/Book-for-Developer: 개발 관련 도서를 읽고 기록하는 Repository입니다.📚📚 개발 관련 도서를 읽고 기록하는 Repository입니다.📚📚. Contribute to MinChul-Son/Book-for-Developer development by creatin..

Book 2021.07.23

필터, 인터셉터

필터는 Servlet이 제공하는 기능이고, 인터셉터는 Spring이 제공하는 기능이다. 요구사항 : 로그인한 사용자만 상품 관리 페이지로 접속할 수 있어야한다. 단순히 상품 관리 컨트롤러에서 로그인 여부를 체크하는 로직을 추가하면 되겠지만 등록/수정/삭제/조회 등 모든 컨트롤러에 추가하는 것은 매우 비효율적이다. 또한 향후에 로직이 변경될 때마다 모든 로직을 다시 수정해야한다. 이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사(Cross-Cutting Concern)라고 한다. 공통 관심사는 스프링의 AOP로도 해결할 수 있지만, 웹과 관련된 공통 관심사는 Servlet의 필터나 Spring의 인터셉터를 사용하는 것이 좋다. 웹과 관련된 공통 관심사를 처리하기 위해서는 HTTP H..

Spring/Spring MVC 2021.07.21

컴퓨터 네트워크 소개

네트워크란 무엇인가? 네트워크는 Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다. "두 대 이상의 컴퓨터들을 연결하고 서로 통신(이야기)할 수 있는 것" 네트워크의 내부구조 네트워크는 내부적으로 계층적 구조(Layered Architecture)를 가지고 있다. 네트워크의 역사 기본적으로 네트워크가 가능하기 위해선 통신이 가능해야한다. 통신은 네트워크를 구성하기 위한 필요조건이다. 컴퓨터가 존재하지 않던 시절부터 통신에 대한 요구는 계속해서 존재했다. 가장 아날로그적인 통신 수단을 떠올린다면 우편(편지)를 생각할 수 있을 것이다. 하지만 이는 전달되는데 시간이 오래걸리기 때문에 긴급상황에서는 무용지물이다. 그 다음 통신 수단으로 사용된 것이 ..

CS/네트워크 2021.07.20

패키지 구조 설계

계층형 패키지 구조 말 그대로 계층형으로 패키지를 설계하는 방식이다. 엔티티(도메인) 상품 회원 주문 상품DTO 회원 DTO 주문 DTO 컨트롤러 상품 컨트롤러 회원 컨트롤러 주문 컨트롤러 서비스 상품 서비스 회원 서비스 주문 서비스 저장소 상품 저장소 회원 저장소 주문 저장소 계층형 구조는 전체적인 구조를 빠르게 파악할 수 있는 장점이 있지만 디렉터리에 클래스들이 너무 많이 모이게 된다는 단점이 존재한다. 도메인 패키지 구조 도메인 패키지 구조는 도메인 단위로 디렉토리를 구성한다. domain 상품 상품 엔티티(도메인 객체) 상품 저장소 상품 컨트롤러 상품 서비스 상품 DTO 등등 회원 회원 엔티티(도메인 객체) 회원 저장소 회원 컨트롤러 회원 서비스 회원 DTO 등등 주문 주문 엔티티(도메인 객체) ..

Spring 2021.07.17

쿠키, 세션

참고 : 패키지 구조 설계 도메인이 가장 중요하다.(도메인 : 화면, UI, 기술 인프라 등등의 영역은 제외한 시스템이 구현해야하는 핵심 비즈니스 영역) domain-webweb을 다른 기술로 바꾸어도 domain은 그대로 유지될 수 있도록 설계해야한다.즉, web은 domain을 알지만 domain은 web을 모르도록..(web을 모두 삭제해도 domain에는 영향이 가지 않게)의존관계는 단방향으로 흐르게 하는 것이 좋다. 2021.07.17 - [Spring] - 패키지 구조 설계 1. 회원 가입 들어온 Form 데이터를 검증하고, Repository에 save를 진행하는 단순한 구조이다. 2. 로그인 파라미터로 들어온 로그인id로 Member 객체를 조회하고 조회된 객체의 password와 파라미터..

Spring/Spring MVC 2021.07.17

트랜잭션

트랜잭션 영상 링크 예지니어스님의 10분 테코톡을 보고 작성되었습니다. 스프링을 사용하다보면 @Transactional 애노테이션을 많이 사용하는데 트랜잭션이 뭘까? 트랜잭션이란? 여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것 Example 거래 과정 구매자의 계좌에서 10000원 출금 판매자 계좌에 10000원 입금 거래가 일어날 때 실행되는 쿼리 UPDATE문 : 구매자의 계좌에서 10000원 빼기 UPDATE문 : 판매자의 계좌에 10000원 더하기 서버에 문제가 발생해 구매자의 계좌에서는 10000원이 빠져나갔지만 판매자의 계좌에는 10000원이 들어오지 않는 문제가 발생할 수 있다. 이를 방지하기 위한 것이 트랜잭션이다. 트랜잭션 쿼리를 논리적으로 하나로 묶어 한번에 모두 실행되거나 모두 ..

테코톡 스터디 2021.07.17

Bean Validation

대부분의 특정 필드에 대한 검증 로직은 일반적인 로직이고 공통적이다. 이런 검증 로직을 모든 프로젝트에 적용하도록 공통화, 표준화한것이 바로 Bean Validation!! public class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 1000000) private Integer price; @NotNull @Max(9999) private Integer quantity; } Bean Validation이 뭔데? Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준. 검증 애노테이션과 여러 인터페이스의 모음. 이..

Spring/Spring MVC 2021.07.14

웹서버 vs WAS

Web Server vs WAS 10분 테코톡- "희봉"님의 영상을 보고 작성된 글입니다. 영상링크 Web Server Web이 뭐야? 인터넷을 기반으로 정보를 공유, 검색할 수 있게 하는 서비스 URL(주소), HTTP(통신 규칙), HTML(내용) 그럼 Server는? 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 Web + Server 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터 웹서버에게 주소(url)를 가지고 통신규칙(HTTP)에 맞게 요청하면, 내용(HTML)을 응답받음. 클라이언트의 요청을 기다리고 웹 요청에 대한 데이터를 만들어 응답(데이터는 웹에서 처리가능한 HTML, CSS, 이미지 등 정적인 데이터 한정) 하지만 정적인 데이터만의 한계가 발생 =..

테코톡 스터디 2021.07.13
반응형