본문 바로가기

정보

(31)
JPA : Java ORM 표준 - JPA에서 제일 중요한것 객체와 테이블 정확한 매핑.(실무에서 이게 어렵다 테이블이 수십 개)- JPA 내부 동작 방식이 중요. 0. SQL 중심적인 개발의 문제점- 패러다임의 불일치 (객체와 RDBMS 사이의 괴리)- CRUD 무한 반복 (자바 객체를 SQL로, SQL을 자바로)- 필드 추가 시 쿼리문 고쳐줘야 함.  -> 그러다보니 개발자는 객체와 RDB사이의 SQL매퍼의 일을 한다. DB에서 객체 상속 : Table 슈퍼타입 서브타입 관계 사용하지만- INSERT때는 쿼리를 슈퍼타입과 서브타입에 각각 넣어야한다.- 조회떄는 JOIN SQL 작성, 객체 생성...-> 자바 컬렉션에서는 너무 쉬움. 객체의 다형성도 활용 가능하다. DB에서 연관 관계 : 객체는 참조를 사용하지만 테이블은 외래 키를 ..
SSH, Shell과 Daemon EC2 에서는 외부에서 public 서버 혹은 bastion을 사용해 private 서버로 접근하기 위해SSH 를 사용한다. 그리고 이를 사용하기 위해 SSH 전용 포트인 22번 포트를 열어 놓는다.그러면 SSH란 무엇이며 어떻게 사용하는 것인지,그것과 관련한 기타 리눅스 관련 용어 및 개념들을 설명하고자 한다. 1. SSH?"보안 셸(SSH) 프로토콜은 보호되지 않는 네트워크를 통해 컴퓨터에 명령을 안전하게 전송하는 방법입니다. SSH는 암호화를 사용하여 장치 간의 연결을 인증하고 암호화합니다. SSH는 또한 터널링  또는 포트 포워딩을 허용하는데, 이는 데이터 패킷이 다른 방법으로는 통과할 수 없는 네트워크를 통과할 수 있도록 하는 것입니다. SSH는 서버를 원격으로 제어하고, 인프라를 관리하며, 파..
Error와 Exception + Java 개념 OOP(Object-Oriented Programming)의 4개의 요소 캡슐화, 상속, 추상화, 다형성 중캡슐화를 위해서 사용하는 것이 바로 접근제어자이다. 접근제어자의 필드, 메서드 단위에서의 사용에 있어서는 의외로 잘 적응했다고 생각했는데,class, interface 단위에서의 주의점이 하나 있어서 소개하고자 한다. 1. 예제아래와 같이 interface InputHandler와 OutputHandler를 한 개의 .java 파일에 정의하고이를 composition을 통해 구현하는 KioskIOHandler라는 Class가 있다고 하자.public interface InputHandler { String readInput();}public interface OutputHandler { ..
Github Action을 이용한 CI/CD Workflow 이전 글에서 Docker를 통한 자동화 과정 때 사용하는 CI/CD 툴 중 하나가 Github Action이라고 설명한 바 있다. 여기에서 워크플로우가 어떻게 진행되는지를 상세히 서술해보려고 한다. 0.    ".github / workflows / action.yml"먼저, docker와 마찬가지로 github Action 또한 yml파일을 통해서 workflow를 구성한다.빌드 한 후 이를 배포에 사용하고자 하는 Repository의 .github/workflows 디렉토리를 만들고, 거기에 {action-file-name}.yml 파일에 상세한 워크플로우를 기술하면 된다.여기서 사용되는 yml은 이하 action.yml이라 부르겠다. 이 과정에서 사용되는 용어에 대해 먼저 얘기해보겠다. 1. 용어 ..
AWS 네트워크 개요 AWS를 사용하는 이유는 cloud network를 사용하기 위함이다.그리고 이를 자신의 서버 private network처럼 사용하기 위해서는1) 어떻게 aws에서 private network를 구성할 것인가?2) 어떻게 외부, 내부 사이의 연결을 할 것인가?3) 이 모든 통신에서 보안설정을 어떻게 진행할 것인가? 를 설정해주는 것이 기본이다.이것에 대해 알아보기 전에, 먼저 네트워크에서 필요한 사전 지식을 알아보자. 1. 네트워크 사전 지식-  OSI(Open System Interconnect) 7 layer 관점에서 본 Private Network:네트워크는 물리적으로 다양한 네트워크 장비가 핵심이 되어 구성된다.컴퓨터 네트워크 통신과 프로토콜 디자인을 계층을 두어 설명한 것이 OSI 7계층이다...
Docker (5) - CI/CD with Docker Workflow 이전의 4개의 글에서 docker에 대해 자세히 알아보았다.그러면 이제는 docker를 어떻게 사용하고, 이를 어떻게 본래의 목적에 맞게 활용하는지를 알아보겠다. 1. CI / CD소프트웨어 개발을 하는 사람이라면 많이 들어봤을 단어 두 개이다. 개발을 한다고 하더라도매번 새로운 기능을 구현하거나 버그를 발견할 때 마다 이를 fix해야 할 때 발생하는 문제가 바로 1. 개발한 것을 저장소에 통합하고2. 개발한 것을 프로덕션 환경에 배포해야하는 과정을 매번 반복해줘야 한다는 것이다.개발자는 귀찮음과 반복적인 작업을 자동화시켜 처리하는 과정을 즐기는편인데,이러한 과정 또한 마찬가지로 자동적으로 처리하게 해주는 작업을 진행한다. 이 과정이 CI/CD이다.이것에 대해 간단히 설명하겠다.CI (Continuous..
Docker (4) - docker private network 이전글에서 여러 image를 한 번에 생성 후 실행까지 하는 docker-compose에 대해 알아보았다.간단하게 단일, 또는 여러 개의 container와 docker-compose가 어떻게 다른지 정리하겠다. 0. multiple container vs docker-compose dockerfile을 통한 다중 컨테이너 실행 방식docker-compose를 통한 실행 방식image 빌드 명령docker build 명령docker-compose up 명령어를 통해 여러개의 컨테이너의 빌드와 실행이 동시에 진행됨.container 실행 명령docker run 명령선언형 툴Dockerfile.ymldocker-compose.ymlcontainer끼리 통신직접 컨테이너 별 네트워크 설정 필요.(각각의 컨테이..
Docker (3) - 다중 컨테이너를 묶어 정의하기 : docker-compose Docker가 배포, 실행의 차원에서 실행되는 것이라면 여러 개의 이미지를 각각 Dockerfile을 통한 build를 해주어야 하는가?에 대한 의문이 있다. 물론 2-3개라면 충분히 그럴수 있지만 docker를 통해 더 많은 이미지를 빌드하고, 컨테이너를 일일이 띄워야 하는 작업은 번거로울 수 있다. 여러 개의 container간의 통신이 필요하다면, 각각의 컨테이너별로 host OS를 통한 통신 설정을 해줘야한다. 이러한 것을 한꺼번에 설정 해두고 이를 실행해주는 것이 바로 docker-compose이다.우선, docker-compose에 대해 알아보자. 1. docker - compose?docker-compose란 Dockerfile과 같은 선언형 툴이다. Dockerfile.yml은 해당 이미지..