본문 바로가기

Spring Boot10

스프링부트+JPA - 9편 ( 소켓통신과 HTTP통신 ) 소켓(Socket)통신❓ Socket이란 운영체제가 가지고 있는 것이다. A라는 서버와 B라는 클라이언트가 메세지를 교환하기 위해서 이 운영체제가 제공해주는 소켓을 이용한다. A와 B가 메세지를 교환하기 위해 A가 소켓을 오픈한다. 통신을 위해 이 오픈한 소켓의 포트(port) 번호가 필요하다❗ 이 포트번호를 5000번이라고 가정해보자👍 A의 IP주소와 5000번 포트를 입력하면 A와 5000번 포트를 통해 통신할 수 있게 된다. 문제는 새로운 클라이언트 C가 들어왔을 때 발생한다. 이미 B가 5000번 포트와 연결되어 통신하고 있기 때문에 C는 5000번 포트를 사용할 수 없다. 이런 문제를 해결하기 위해 최초의 5000번 포트는 연결의 용도로만 이용한다. 연결이 되는 순간 새로운 소켓을 만들어서 클라.. 2021. 8. 23.
스프링부트+JPA - 8편 ( OOP관점에서의 모델링 ) JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다 모델링한다는 것은 추상적인 개념을 현실세계에 뽑아내는 것을 의미한다❗ 자동차 클래스와 엔진 클래스가 있다고 가정해보자. 자동차 클래스에서 엔진 클래스를 사용하기 위해선 상속을 사용해서는 안된다❗ 왜❓ Car클래스가 Engine클래스를 Extends하면 Engine이 부모 클래스가 되어버리니 말이 안되는것이다. 그래서 상속 대신 컴포지션(결합)이라는 방법을 사용해야한다. 컴포지션은 JPA가 클래스를 테이블로 모델링할 때, 필드 중 객체(클래스)가 존재하면 그 객체에 대한 테이블을 따로 만들고 그 객체에 대한 id(PK)컬럼을 만들어서 매핑(관리)하는 것이다. 아래 코드와 같이 Car클래스안에 Engine클래스를 선언해주면 된다👏👏 Class Car {.. 2021. 8. 20.
스프링부트+JPA - 7편 ( 영속성 컨텍스트 ) 영속성은 5편에서 알아봤듯이 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. 컨텍스트는 그 해당 대상의 모든 것(?) 모든 정보(?)이다. ORM에서 영속성컨텍스트는 무엇일까??? 자바프로그램에서 DB에 어떤 데이터를 넣고 싶은데 그 데이터가 챔피언이라고 가정을 해보자!! 이 챔피언 데이터를 DB에 저장할 때 DB에 직접적으로 바로 저장하는 것이 아니라 중간에 영속성컨텍스트를 거치게 된다. 💡챔피언 데이터 ---> 영속성컨텍스트 - DB💡 영속성컨텍스트는 자바프로그램과 DB의 중간에 위치하고 있기 때문에..❗ 자바프로그램에서 DB로 왔다 갔다 하는 모든 정보를 영속성컨텍스트는 알고 있다❗❗ DB에 챔피언을 저장하기 위해서는 💡자바프로그램에서 영속성컨텍스트로 챔피언 .. 2021. 6. 2.
스프링부트+JPA - 6편 ( ORM ) ORM이란??? Object Relational Mapping이다❗❗ Object를 DataBase에 연결하는 어떤 방법론 같은 것이다. ORM은 나의 하인 같은 것이다❗ 우리가 어떤 클래스를 하나 만들 때 Model클래스라는 것을 생성하게 된다. Model클래스라는 것이 무엇이냐🤔🤔 우리가 어떤 건물을 짓는 설계도가 있다고 생각해보자 이 💶설계도를 가지고 🏢건물을 하나 뙇❗ 짓는 것을 모델링한다고 표현한다. 모델링한다는 것은 추상적인 개념을 현실세계에 뽑아내는 것을 의미한다❗ 모델링을 프로그래밍적으로 보면 DataBase에 Team이라는 테이블이 있다고 가정해보자😵 ID INT Name VARCHAR2(255) Year VHACHAR2(255) Java에서 Team테이블의 데이터를 Input(DML:D.. 2021. 5. 14.
스프링부트+JPA - 5편 ( JPA ) JPA란??? JAVA Persistence API 이다❗❗ JAVA는 뭔지 알겠는데....(JAVA를 모른다면 당신은...🤔🤔) 💡Persistence(영속성)는 무엇일까❓❓ 영속성(Persistence)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. 우리의 RAM은 휘발성이기 때문에 컴퓨터가 꺼지면 모든 데이터가 다 날아간다❗😵😵 RAM에 있는 데이터를 하드디스크에 기록하게되면 하드디스크는 비휘발성이기에 영구적으로 저장된다❗ Persistence(영속성)는 바로 이 영구히 기록될수 있도록 하는것이다❗ JPA라는것은 JAVA에 있는 데이터를 영구히(Persistence) 기록할 수 있는 환경을 제공하는 API이다💡 그럼 JAVA도 알고 Persistence도 .. 2021. 5. 3.
스프링부트+JPA - 4편 ( BufferedReader, BufferedWrite ) 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다. BufferedReader와 BufferedWriter를 알아보기전에..! 데이터 통신에 대해 조금만 알아보자❗ 우리가 데이터를 통신할때 전기선(전류)으로 bit 단위로 통신을하게된다 bit -> 0,1,0,0,1,1,0 처럼 0은 전류가 흐르지않고 1은 전류가 흐르는것이다. 사람이 저 bit단위로 통신하게되면 알아먹을수 있을까...❓😕 그럼 bit단위 통신이 아닌 영어 한 문자로 통신을 할 수 있을까❓❓( bit는 영어권 국가에서 발전했기때문에..😥) 영어 한 문자로 통신하기 위해서는 8bit가 필요하다❗ 8bit는 256가지의 문자를 전송이 가능하기 때문이다.❗ 8bit = 2의8승 = 256 이기 때문에 영어의.. 2021. 4. 26.
반응형