응애개발자
article thumbnail
JPA란 무엇인가?
Spring/JPA 2023. 7. 9. 12:52

JPA는 자바 진영의 ORM 기술 표준이다. ORM이란? ORM은 이름 그대로 객체와 관계형 DB를 매핑한다는 뜻이다. ORM 프레임 워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 예를 들어 개발자가 객체를 저장할 때 INSERT SQL을 직접 작성하는 것이 아닌 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 된다. 그러면 ORM 프레임워크가 적절한 INSERT SQL을 생성해서 DB에 객체를 저장해준다. 객체 저장 ex)jpa.persist(member); //저장 객체 조회 ex) Member member = jpa.find(memberId); //조회 어느 정도 성숙한 객체지향 언어에는 대부분 ORM 프레임워크들이 있는데 단순히 객체 하나를 C..

article thumbnail
JPA 패러다임의 불일치
Spring/JPA 2023. 7. 9. 01:06

애플리케이션이 발전하며 그 내부 복잡성도 증가, 그래서 현대의 복잡한 애플리케이션은 대부분 객체지향 언어로 개발한다. 문제는 도메인 모델을 저장할때 발생한다. 예를들어 회원 객체를 저장해야 하는데 회원 객체가 팀 객체를 참조하고 있다면, 회원 객체를 저장할 때 팀 객체도 함께 저장해야 한다. 단순히 회원 객체만 저장하면 참조하는 팀 객체를 잃어버리는 문제를 발생한다. 현실적인 대안은 관계형 DB에 객체를 저장하는 것인데, 객체와 관계형 DB는 지향하는 목적이 서로 다르므로 둘의 기능과 표현 방법도 다르다. 이것을 객체와 관계형 DB의 패러다임 불일치 문제라 한다. 따라서 객체 구조를 테이블 구조에 저장하는 데는 한계가 발생한다. 1.상속 객체는 상속이라는 기능을 갖고 있지만 테이블은 상속 기능이 없다. ..

article thumbnail
JPA 소개
Spring/JPA 2023. 7. 7. 11:00

들어가기 앞서 JPA 게시글은 위의 책을 정리하여 만들었다. 1. JPA 소개 JPA를 쓰는 이유 지루하고 반복적인 CRUD SQL을 알아서 처리 객체 모델링과 관계형 DB 사이의 차이점도 해결 JPA는 실행 시점에 자동으로 SQL을 만들어 실행(개발자는 SQL을 직접 작성하는 것이 아닌 어떤 SQL이 실행될지 생각만 하면 됨) JPA의 장점 애플리케이션을 객체 중심으로 개발하니 생산성, 유지보수 상승 코드 수가 줄어들어 가독성 향상 테스트가 편리 데이터베이스 변경시 손쉽게 수정 가능 SQL을 직접 다룰 때 발생하는 문제점 1. 반복, 반복 그리고 반복 객체를 DB에 CRUD하려면 많은 SQL과 JDBC API를 코드로 작성해야 한다는 점 테이블마다 비슷한 일을 반복해야 하는데, 개발하려는 애플리케이션에..

article thumbnail
이산수학 기초
CS/이산수학 2023. 7. 3. 14:34

1. 이산수학 개요 이산수학(Discrete Mathematics) 개념 컴퓨터를 위한 수학 참과 거짓으로 살펴보는 컴퓨터 수학 이산수학을 배우는 이유 이산수학이란 불연속적인 숫자를 다루는 수학이다. 컴퓨터 내부적으로 0과 1만을 다루는 데 그러한 불연속적인 데이터 흐름을 다루기에 적합한 수학적 사고를 배양하는데 필수적인 강의라고 할 수 있다. 또한 이산수학에서는 다루는 내용이 자료구조, 알고리즘 등의 베이스가 되어 전체적인 컴퓨팅 사고력을 길러줄 것이다. 그리고 추후 수학적 귀납법 등의 다양한 기초 개념이 알고리즘에 반복적으로 출현하기 때문에 컴퓨터 과학의 베이스 학문 이라고 할 수 있다. 2. 명제 명제 (Proposition) 개념 진실 혹은 거짓을 말한다. 참(True)이나 거짓(False)으로 ..

article thumbnail
컴퓨터 네트워크의 계층
CS/Network 2023. 6. 19. 15:04

OSI 7계층 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델로 OSI 7 계층을 통용적으로 많이 사용한다. 응용계층 분산된 시스템을 하나의 통용된 응용시스템으로 묶어주는 계층 예를들어 구글검색시스템 , 네이버웹툰, LOL 등이 있으며 사용자와 제공자가 멀리 떨어져있지만 하나의 응용시스템으로 묶어주는 계층을 말한다. 표현계층 분산된 응용의 표현 방법에 대한 규약으로 쉽게 말해 각각의 애플리케이션들의 정보를 서로 잘 통신할 수 있도록 필터하고 변환하는 계층이라고 말할 수 있다. 예를들어 HTML이 있다. 세션계층 응용의 접속 및 통신과 관련된 규약을 표현한 계층으로 객체단위에서 정보(그림이나,사물의 움직임)등 주고받기 위한..

article thumbnail
컴퓨터 네트워크의 품질 기준
CS/Network 2023. 6. 14. 01:05

1. 네트워크 품질 기준 2가지 속도 측면 대역폭(Bandwidth) 또는 처리량(Throughput) 네트워크 대역폭은 네트워크가 단위 시간 내 전달할 수 있는 최대 크기의 전달 용량을 의미합니다. 대역폭이 높을수록 많은 데이터가 네트워크에 실려서 전달하고 전달받을 수 있습니다. 대역폭 자체는 전달 속도와는 관계가 없으며 오히려 용량과 관계가 있습니다. 1MB/s -> 8Mbps(Mb/s) 1메가바이트 -> 8메가비트 지연시간(Latency) 네트워크 지연 시간은 네트워크 통신의 지연을 말하며, 네트워크를 통해 데이터를 전송하는 데 걸리는 시간을 보여줍니다. 딜레이나 랙이 길게 발생하는 네트워크는 지연 시간이 길고, 응답 시간이 빠른 네트워크는 지연 시간이 짧습니다. ●Processing delay P..

article thumbnail
컴퓨터 네트워크의 소개
CS/Network 2023. 6. 5. 00:39

1. 네트워크의 역사(Network History) 네트워크가 가능하려면 통신이 가능해야 네트워크가 이루어질 수 있다. 우편 봉화 - 최초의 전자기 신호를 이용한 통신시스템으로 광통신, 디지털 통신(정확한 개수로 정보를 전달함으로)으로도 말할 수 있다. 전보(1846년) - 디지털 신호(Morse 부호) CDMA - 디지털 통신으로 음성신호를 0과 1인 디지털 신호로 압축하여 보내는 기술로 Data network, Digital network로 말할 수 있다. 전화(1876년) - Bell에 의해 발명되었으며 , 현대적 통신, Voice network, Analog network로도 말할 수 있다. 사용자의 폭발적 증가가 되는 시기이며 처음에는 짧은 거리만 데이터 통신이 이루어졌지만 DDD(Direct ..