분류 전체보기
-
Mac에서 docker, docker machine, virtualbox설치하기네트워크 & 인프라 2022. 3. 28. 13:04
맥에서 도커를 설치해보자. 먼저 홈페이지에서 docker desktop을 다운받는다. https://www.docker.com/get-started/ Developers - Docker Docker Hub The world’s leading service for finding and sharing container images with your team and the Docker community. For developers and those experimenting with Docker, Docker Hub is your starting point into Docker containers. Create an account and s www.docker.com 도커 버전 확인하자. $ docker ver..
-
통신 확인하기네트워크 & 인프라 2022. 3. 23. 17:56
이번에는 네트워크 통신을 확인하는 방법에 대해 알아보자. ① Ping check IP 정보만으로 서버에 요청이 가능한 지 확인 ICMP 프로토콜 사용 (신뢰성을 보장하지 않는 IP의 오류정보를 발견하고 보고를 담당하는 프로토콜) TCP가 아니라 Port번호가 존재하지 않음 RTT(Round Trip Time) : 한 패킷이 왕복한 시간 (높을 경우 어느구간에서 오래 걸리는지 확인 필요) ARP(Address Resolution Protocol) : IP(논리적 주소)를 이용하여 MAC(물리적 주소)를 알아와 통신이 가능하게 해주는 프로토콜 Broadcast로 요청하면 수신한 장비들 중 자신의 IP에 해당하는 장비가 응답하고 응답 받은 NIC 포트정보와 IP, MAC 주소를 기반으로 이후 통신을 진행 $ ..
-
통신망 ( + AWS 에서 망 분리하기)네트워크 & 인프라 2022. 3. 23. 17:36
이번에는 통신망을 분리하는 것에 대해 학습하였다. 망 분리하기 망분리는 개인 정보를 다루는 DB 서버 등을 위한 내부망, 사용자가 접근하는 웹 서버를 위한 외부망을 나누어 구성 한다. 여러겹의 복잡한 방어를 통해 최적화되고 강력한 보안체계를 갖추기 위해 사용된다. 통신망 : 노드(IP로 식별할 수 있는 대상)들과 노드들을 연결하는 링크(물리적 회선)들로 구성된 하나의 시스템 ( 1 Subnet = 1 망 ) 외부망 : 사용자가 접근하는 웹 서버를 위한 망 내부망 : 개인정보를 다루는 DB 서버 등을 위한 망 AWS에서의 망 Region : 국가 / 지역 Availiability Zone (가용성 존) : 데이터 센터 ( 물리적으로 나뉜 IDC ) VPC : 하나의 Region에 종속되며 다수의 AZ설정이..
-
네트워크 OSI 7 계층네트워크 & 인프라 2022. 3. 23. 15:40
네트워크 OSI 7계층에 대해서 학습하였다! OSI 7 계층 OSI 7 계층이란 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 이다. 독립적인 역할을 분리함으로서 문제가 발생시 어느 계층에서 문제가 생겼는지 파악하는데 도움을 준다. ① 1계층 (Physical Layer) : 물리계층 Bit Stream(이진수 흐름 (0, 1))을 전기, 빛 등의 신호로 변환 (아날로그 신호) PDU : Bit 대표장비 : 케이블, 허브, 리피터, 커넥터, PHY칩 (하드웨어적 구조) 유형범위 : 로컬 장비간에 전성된 전기 또는 빛 신호 데이터를 전달만 함 ( 데이터가 무엇인지, 어떤 문제가 있는지는 관심사항이 아니다 ) ② 2계층 (Data-Link Layer) : 데이터 링크 계층 물리적 주소를 이용해 노드(..
-
PUT vs PATCHSpring 2022. 3. 21. 16:48
기존 자원에 대해 업데이트를 실행하는 API중 PUT과 PATCH의 차이를 알아보자. PUT PATCH 사용 기존 자원에 대한 정보를 업데이트 할 때 자원 일부의 업데이트 정보만 담은 요청을 받을 때 넘어오지 않은 정보에 대해 null로 처리 (대상 리소스를 나타내는 데이터를 대체, 전체 교체) 넘어온 정보에 대해서만 업데이트 진행 (부분 교체) URI의 자원이 존재하지 않을 때 새로운 자원을 생성하고 정보를 반영 자원이 존재하지 않아 오류 발생 멱등성 여부 (동일할 요청을 여러번 연속으로 보내도 같은 응답으로 반응) O (넘어온 자원이 존재하지 않으면 최초 한번만 생성 후 계속 같은 값을 응답) X (자원에 대한 수정이 반복적으로 진행된다.) 멱등성 PATCH에서 멱등성이 보장되지 않는 다는 것은 무엇..
-
2개월차 모의면접학습로그 2022. 3. 20. 00:34
멘토링을 시작한지 2개월 차 블로그에 정리한 내용을 바탕으로 첫 모의면접을 실시했다. Q: 트랜잭션이란 무엇인가 ? A: 비지니스 로직에서 쪼개질 수 없은 하나의 단위작업으로 원자성, 일관성, 독립성, 영속성의 원칙을 지니고 있다. +A: 데이터베이스는 기본적으로 트랜잭션을 관리하기 위한 설정을 가지고 있다. 데이터베이스에서는 명령이 끝날 때 까지 수행내역을 로그에 저장해두고 데이터베이스에 변경된 내용을 재반영하기 위한 redo.log와 수행에 실패에 있어서 이전상태로 되돌리는 undo.log를 이용해 트랜잭션을 지원한다. 하나의 작업 수행 목표를 위해 (ex) 송금의 경우 내 계좌에서 차감한 만큼 받는 계좌의 금액을 증가) 여러 명령을 묶어 비지니스 로직으로 하나의 트랜잭션으로 나타낸다. 성공적으로 ..
-
Repository Layer의 단위테스트 작성Spring 2022. 3. 11. 17:19
비지니스 로직은 도메인 계층에서 발생하고, 엔티티의 영속화 요구는 서비스 계층에서 발생하기 때문에 Repository의 단독 테스트를 진행하기 위해서는 Service 계층과의 관계를 끊어야 한다. SpringBoot에서는 @DataJpaTest 어노테이션을 통해서 JPA컴포넌트와 관련된 Repository의 단위테스트가 가능하도록 해준다. @DataJpaTest DataJpaTest 어노테이션은 JPA와 관련된 설정만을 로드하여 @Entity 어노테이션이 붙은 클래스를 스캔하여 저장소를 구성한다. 트랜잭션을 기본적으로 내장하고 있어 테스트 코드가 종료되면 자동으로 롤백이 이루어진다. 테스트 코드 @RunWith(SpringRunner.class) @DataJpaTest @AutoConfigureTestD..
-
테스트 진행시 @Value (application.properties.yml) 값을 읽지 못할 때 (NullPointerException)Spring 2022. 3. 4. 23:22
서비스 계층 테스트를 진행하려고 하는데 @Value값을 사용하는 경우 테스트 진행시 값이 없어 null pointer exception 이 발생하게 되었다. ( 프로퍼티 값이 로드되지 않기 때문!) ( 추가로 테스트 진행시 Mockiito를 사용하지 않는다면 @TestPropertySource어노테이션을 이용해 테스트 프로퍼티 소스를 따로 분리할 수도 있다. ) 기존 코드 @Service public class ProductService { @Value("${AWS_S3_BUCKET_URL}") private String AWS_S3_BUCKET_URL; //... } 수정한 코드 @Service public class ProductService { private String bucketUrl; publ..