전체 글
TCP/IP 4계층(Layer)
1. TCP/IP (Transmission Control Protocol / Internet Protocol) 현재 수많은 프로그램들이 인터넷으로 통신하는데 있어 가장 기반이 되는 프로토콜로 실제 대다수 프로그램은 TCP와 IP로 통신하고 있다. ARPANET이 개발된 이후 현재의 인터넷으로 발전해나가는 과정에서 대부분의 데이터 통신이 TCP와 IP기반으로 이루어졌기에 인터넷 프로토콜 그 자체를 표현하는 용어이기도 했고, 다양한 프로토콜이 개발된 현 시점에도 사실상 인터넷 프로토콜을 대표하는 용어로 사용중이다. 이를 이용해서 컴퓨터를 연결하는 체계를 이더넷(Ethernet)이라고 부른다. 보통 하나로 표현하긴 하나 TCP와 IP는 별개이다. 네트워크의 경우 계층이 정의되어 있고 각 계층마다 하는 역할과 ..
TCP 와 UDP
1. TCP 프로토콜(Transmission Control Protocol) OSI 계층모델의 관점에서 전송 계층(4계층)에 해당 양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공 - IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스를 제공하게 됨 . 신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨 1. 신뢰성 있음 (Reliable) 패킷 손실, 중복, 순서바뀜 등이 없도록 보장 TCP 하위계층인 IP 계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성을 제공 2. 연결지향적 (Connection-oriented) 같은 전송계층의 UDP가 비연결성(connectionless)인 것과는 달리, TCP는 연결지향적 임 이 경우, 느슨한 연결(Loosl..
OSI 7계층(Layer)
1. OSI 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 2. OSI 7 계층을 나눈이유는? 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악하고, 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다. 3. 7 계층 1계층 - 물리 계층 Data를 전기신호로 바꿔주는 역할을 한다. 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 단위: 비트 장비: Hub, Repeater, Cable 2계층 - 데이터 링크 계층 물리계층을 통해 송수신되는 ..
3. 연관관계 매핑 기초
1. 연관관계가 필요한 이유 - 객체를 테이블에 맞추어 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다. 1)테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 2) 객체는 참조를 사용해서 연관된 객체를 찾는다. (테이블과 객체 사이에는 큰 간격이 있다(패러다임의 차이)) 객체를 테이블에 맞추어 모델링의 예 - 협력 관계가 없음) - 참조 대신에 외래 키를 그대로 사용 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; … } @Entity public ..
2. 엔티티 맵핑
1. 객체와 테이블 매핑 @Entity - @Entity가 붙은 클래스는 JPA가 관리하는 엔티티 - 기본 생성자 필수 - (jpa에서 프록싱할때 사용하는 등에 필요) - final 클래스 enum, interface, inner 클래스는 사용이 불가능 - 저장할 필드에 final 사용 불가능 @Table - 엔티티와 매핑할 테이블 지정 - 속성 1) name: 매핑할 테이블 이름 2) catalog: 데이터베이스 catalog 매핑 3) schema: 데이터베이스 schema 매핑 4) uniqueConstraints (DDL): DDL 생성 시에 유니크 제약 조건 생성 @Entity @Table(name="Member") public class Member2 { ~ } 2.데이터베이스 스키마 자동 생..
1. 영속성 관리
JPA는 스레드가 생설될 때 마다 EntityManagerFactory에서 EntityManager를 생성한다. EntityManager는 내부적으로 DB 커넥션 풀을 사용해서 DB 접근한다. 영속성 컨텍스트란 엔티티를 영구 저장하는 환경으로 눈에 보이지않는 논리적인 개념이다. 이러한 영속성 컨텍스트는 엔티티 매니저를 통해서 접근하게 된다. 엔티티의 생명주기 비영속(New) 영속성 컨텍스트와 관계가 없는 상태 영속(Managed) 영속성 컨텍스트에 저장된 상태 엔티티가 영속성 컨텍스트에 의해 관리되며 트랜잭션 커밋 시점에 DB에 쿼리를 날리며 저장된다. 준영속(Detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(Removed) 삭제된 상태 트랜잭션 커밋 시점에 DB에 쿼리를 날리며 삭제된다..
인스타 api(instagram-basic-display-api) in java
해당 글의 2020년 7월 29일 실습 후 작성 된 글입니다. 본 글에서는 instagram-basic-display-api를 사용하기 위해서 access_token 값과 해당 토큰값을 장기 토큰값으로 변경하며 장기토큰 값을 갱신하는 방법을 소개하고자 합니다. 아래 링크는 instagram-basic-display-api 사용 단계가 설명되어 있는 공식설명문서입니다. https://developers.facebook.com/docs/instagram-basic-display-api/getting-started 시작하기 - Instagram 플랫폼 - 문서 - Facebook for Developers developers.facebook.com 본 글에서는 1단계 facebook 앱 만들기 2단계 Inst..
인텔리제이 자바 버전 변경
기존 8버전에서 개발중 강의 실습이 11버전으로 이루어져서 11버전을 다운로드한 뒤 인텔리제이에 적용 저바 8 버전 -> 11버전으로 인텔리제이 수정 문제 상황 8버전 사용 중 11 버전 프로젝트 새로 시작 Execution failed for task ':compileJava'. > Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. 기존 8버전으로 셋팅되어 있어서 11 버전의 그래들 설정과 안맞으면서 에러 발생 인텔리제이의 자바 버전을 11로 변경 1. File -> Project Settings -> Project 2.File -> Project Settings -> Modules 3.File -> Set..