전체 글
-
ORM - ORM과 문제 해결2(연관관계)FrameWork/ORM 2024. 1. 22. 10:05
ORM과 문제 해결2 연관관계 객체는 참조를 사용해서 다른 객체와 연관관계를 가지고 참조에 접근해서 연관된 객체를 조회한다. 반면에 테이블은 외래 키를 사용해서 다른 테이블과 연관관계를 가지고 조인을 사용해서 연관된 테이블을 조회한다. 참조를 사용하는 객체와 외래 키를 사용하는 관계현 데이터베이스 사이의 패러다임 불일치는 객체지향 모델링을 거의 포기하게 만들 정도록 극복하기 어렵다. Member 객체는 Member.team필드에 Team 객체의 참조를 보관해서 Team객체와 관계를 맺는다. 따라서 이 참조 필드에 접근하면 Member와 연관된 Team을 조회 할 수 있다. class Member { Team team; ... Team getTeam() { return team; } } class Team..
-
ORM - ORM과 문제 해결1(상속)FrameWork/ORM 2024. 1. 22. 08:51
ORM과 문제 해결 1 ORM 기술은 이런 문제를 어떻게 해결할까? 우선은 OMR 중에도 JPA를 통해 ORM 기술이 이 문제를 어떻게 해결하는지 간단히 알아보자 JPA를 사용하면 객체를 데이터베이스에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하는 것이 아니라 JPA가 제공하는 API를 사용하면 된다. JPA가 개발자 대신에 적절한 SQL을 생성해서 데이터베이스에 전달한다. JPA가 제공하는 CRUD API를 간단히 알아보자. ▼저장 기능 jpa.persist(member); //저장 persist() 메소드는 객체를 데이터베이스에 저장한다. 이 메소드를 호출하면 JPA가 객체와 매핑 정보를 보고 적절한 INSERT SQL을 생성해서 데이터베이스에 전달한다. 매핑정보는 어떤 객체를 어떤 테이블에 ..
-
ORM- SQL을 직접 다룰 때 발생하는 문제점FrameWork/ORM 2024. 1. 20. 19:52
SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스는 가장 대중적이고 신뢰할 만한 안전한 데이터 저장소다. 그런 데이터 베이스를 관리하려면 SQL을 사용해야 한다. 자바로 작성한 애플리케이션은 JBDC API를 사용해서 SQL을 데이터베이스에 전달한다. 반복 그리고 반복 구체적인 예시로 SQL을 직접 다룰 때의 문제점을 알아보자 예시의 시나리오는 자바와 관계형 데이터베이스를 사용해서 회원 관리 기능을 구현하는 것이다. 회원을 CRUD하는 기능 public class Member{ private Stirng memberId; private String name; ... } public class MemberDAO{ public Member find(String memberId){...} } 이제 M..
-
AWS - VPC, 서브넷(Public, Private), 라우팅 테이블Infra/클라우드 2024. 1. 18. 12:30
인터넷 게이트웨이 추가 인터넷 게이트웨이(IGW)를 VPC에 연결하지 않으면 VPC에서 인터넷을 할 수 없다. 인터넷이 연결되어 있지 않으면 AWS의 네트워크 역할을 하기가 어렵다. 대부분 경우 IGW를 생성해서 VPC에 연결한다. 서브넷과 라우팅 테이블 서브넷이 인터넷과 연결하기 위해서 라우팅 규칙 필요 라우팅 테이블을 생성하고 해당 라우팅 테이블에 인터넷을 위한 규칙 생성 지정된 서브넷과 라우팅 테이블을 연결한다. 라우팅 테이블을 VPC를 만들면 기본적으로 하나가 생기지만 보통은 default로 생성된 라우팅 테이블을 사용하지 않고 추가적으로 1)사용자가 라우팅 테이블을 만든다음에 그 라우팅 테이블에 인터넷을 위한 규칙을 설정해 주고 2)해당 라우팅 테이블을 인터넷이 필요한 서브넷과 연결해 준다. P..
-
AWS - VPC 생성Infra/클라우드 2024. 1. 18. 10:26
VPC 생성 VPC 만들기 관리 콘솔을 이용해 VPC를 만들어 보자 이름과 CIDP 지정으로 간단히 완료 VPC를 생서하면 기본 라우팅 테이블이 하나 생긴다. VPC > 라우팅 테이블 > rtb~ 대상 IP가 local이라는 뜻은 네트워크 트래픽 중에 대상 IP를 목적으로 가지고 있는 것은 나의 local에서 처리한다는 의미이다. VPC안에서 처리하고 외부로 내보내지X 않는다. 서브넷 만들기 서브넷은 VPC CID 블록의 서브넷으로 생성한다. CIDR 범위를 지정하고 AZ를 지정한다. 중요: ⭐enable public IP 옵션을 선택할 수 있다. 서브넷은 반드시 하나의 라우팅 테이블을 연결한다. 위 그림에는 서브넷이 2개 있다. 서브넷1에 있는 것이 주황색 네모들은 EC2 인스턴스를 의미하고, 서브넷2..
-
AWS - VPC 개념, CIDR 표기법Infra/클라우드 2024. 1. 18. 09:15
VPC 개념 VPC란? Amazon Virtual Private Cloud AWS의 가상 사설 네트워크 AWS를 잘 사용하기 위해서 반드시 알아야 되는 필 수 지깃 EC2의 네트워크 계층 많은 AWS 서비스들이 VPC를 통해 네트워크에 연결된다. EC2에 네트워크 계층을 담당하고 있고 많은 AWS 서비스들이 VPC를 통해서 서로 연결된다. VPC 핵심 개념 VPC : 사용자의 AWS 계정 전용 가상 네트워크 망, 리전 서비스 서브넷 : VPC를 더 작은 범위의 네트워크 나눈 것, AZ 서비스 서브넷을 만들때 반드시 직접 AZ를 선택해야 한다. EC2 인턴스는 반드시 서브넷에 연결된다. ⭐EC2 인스턴스는 VPC에 직접 연결하지 못하고 서브넷을 통해서 연결이 된다. EC2인스턴스는 AZ서비스기 때문에 같은..
-
리눅스 - 라이브러리CS지식/운영체제 2024. 1. 14. 16:56
리눅스 OS가 제공하는 라이브러리(library)를 살펴보자. 프로그래밍 언어는 다수의 프로그램에서 공통으로 사용하는 처리를 라이브러리로 합쳐서 제공하는 기능이 있다. 이걸 사용해서 프로그래머는 미리 만들어지 대량의 라이브러리에서 필요한 걸 골라서 효율적으로 프로그램을 개발할 수 있다. 라이브러리 중에는 OS가 미리 공통된 기능을 가진 라이브러리를 준비해서 제공하는 경우도 있다. 프로세스가 라이브러리를 사용할 때 소프트 웨어 계층은 [그림 01-06]과 같다. 그림 01 - 06 프로세스의 소프트웨어 계층 표준 C 라이브러리 C언어는 국제 표준화 기구(ISO)에서 정한 표준 라이브러리가 존재한다. 리눅스에서도 이런 표준 C라이즈러리가 제공된다. 일반적으로 GNU 프로젝트 에서 제공하는 glibc를 표준 ..
-
리눅스 - 프로그램과 프로세스, 커널, 시스템 콜CS지식/운영체제 2024. 1. 14. 13:39
리눅스 프로그램과 프로세스 리눅스에서는 다양한 프로그램이 동작한다. 프로그램이란 컴퓨터에서 동작하는 관련된 명령 및 데이터를 하나로 묶은 것이다. Go언어와 같은 컴파일형 언어라면 소스코드를 빌드해서 만들어진 실행 파일을 프로그램이라고 부른다. 파이썬 같은 스크립트 언어는 소스코드 그 자체가 프로그램이 된다. 커널(Kernel)도 프로그램의 일종이다. 컴퓨터를 켜면 처음에 커널이 실행된다. 그외의 모든 프로그램은 커널 이후에 실행된다. 리눅스에서 동작하는 프로그램은 다음과 같은 다양한 종류가 있다. 웹브라우저: 크롬, 파이어폭스 웹서버: 아파치,Nginx 텍스트 에디터: Vim,이맥스 프로그래밍 언어 관련: Go컴파일러, 파이썬 인터프리터 등 셸(shell) : bash,zsh 등 시스템 전체 관리 소프..