분류 전체보기 30

항해99 8주차 WIL(github action & docker 자동배포 트러블슈팅)

자동배포 트러블 슈팅 # 자동 배포 과정 build Error 📌 에러 ) no space left on device : 장치에 남은 용량이 없음을 의미 ssh -i /c/Users/jungi/Desktop/clone.pem ubuntu@도메인 주소 명령어 실행 df -h 명령어 실행 : 사용한 device 용량 확인 3. docker rmi $(docker images -q) 명령어 실행 : Docker의 모든 이미지 제거하기 4.df -h 명령어 실행 : Docker 이미지 제거로 인해 용량의 공간이 확보된 것을 확인할 수 있다.

항해99 7주차 WIL(github action & docker를 이용한 자동 배포)

1. 가장 신경 쓴 부분 - 7주차 클론프로젝트를 진행하면서 가장 신경 쓴 부분은 첫째로 완성도였습니다. 무리하게 기능적으로 스코프를 넓힐게 아니라 FE와 협업을 해서 완성도를 높이는데에 초점을 맞췄습니다. 그러다보니 추가로 자동배포를 집중적으로 학습하고 실행에 옮길 수 있게 되었습니다. 2. 기술에 대한 정리 - github action & docker 를 이용한 자동 배포 Docker file 추가 FROM 명령어 부분 : Docker 버전을 Docker hub 내에서 필요한 자원을 검색해서 가져온다. COPY 부분 : Project 내 build 파일 안의 lib 내에 있는 파일을 복사해서 넣어서 이미지화 시켜준다. Build 확인 후 lib 파일 내에 jar 파일을 Dockfile 내의 jar 파..

혼공자 Chapter 10-1

1. 예외와 예외 클래스 - 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말합니다. - 자바는 예외가 발생할 가능성이 높은 코드를 컴파일할 때 예외 처리 유무를 확인합니다. - 일반 예외 : 확인 예외라고도 하며 예외 처리 코드가 없다면 컴파일 오류가 발생합니다. - 실행 예외 : 미확인 예외라고도 하며 실행을 해야 예외가 발생합니다. 2. 실행 예외 - 자바 컴파일러가 실행 예외를 체크하지 않기 때문에 개발자의 경험에 의해서 예외 처리 코드를 작성해야 합니다. (1) NullPointerException - 가장 빈번하게 발생하는 실행 예외로, 객체가 없는 상태에서 객체를 사용하려 할 때 예외가 발생합니다. - 6라인에서 data 변수는 null 값을 가지기..

항해99 5주차 WIL(CORS)

CORS(Cross-Origin Resource Sharing) 교차(다른) 출처 리소스 공유라고 해석할 수 있다. 출처가 다른 웹 클라이언트와 API 서버 간의 리소스 요청 등의 상황에서 별도의 설정을 하지 않을 시 CORS 정책을 위반했다는 오류가 발생한다. 비신뢰적인 사이트에서 내 컴퓨터의 브라우저에 있는 쿠키 등의 정보를 통해 서버에서 정보를 탈취하는 등 비정상적인 행동을 하는 것을 방지하기 위한 정책 중 하나이다. (다른 하나는 SOP) 출처(Origin) url 중 protocol, hostname, port에 해당 이 3가지가 모두 같으면 동일 출처라고 한다. port는 생략이 가능하다. location.origin을 통해 현재 사이트의 출처를 확인할 수 있다. SOP(Same-Origin-..

항해99 4주차 WIL(ORM, Object Relational Mapping 객체관계매핑)

1. ORM Object Relational Mapping (객체-관계 매핑) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. - 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. - 객체 모델과 관계형 모델 간에 불일치가 존재한다. - ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 데이터베이스 데이터 Object 필드 - 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다. Persistant API라고도 할 수 있다. Ex) JPA, Hibernate 등 ORM 장단점 * 장점 - 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다. - 재사용 및 유지보수의 편리..

항해99 3주차 WIL(DI란 무엇인가?)

DI 란 무엇인가? 한줄로 요약하면 외부에서 의존 객체를 생성하여 넘겨주는 것으로 의존성 주입을 말한다. IoC 컨테이너에서 객체를 생성한 후 생성된 객체를 다른 객체에 주입합니다. IoC 컨테이너에서 생성된 객체들을 한번에 관리 할 수 있는 장점이 있다. 첫번째 방법은 A객체가 B와 C객체를 New 생성자를 통해서 직접 생성하는 방법이고, 두번째 방법은 외부에서 생성 된 객체를 setter()를 통해 사용하는 방법이다. 이러한 두번째 방식이 의존성 주입의 예시인데, A 객체에서 B, C객체를 사용(의존)할 때 A 객체에서 직접 생성 하는 것이 아니라 외부(IOC컨테이너)에서 생성된 B, C객체를 조립(주입)시켜 setter 혹은 생성자를 통해 사용하는 방식이다. Ioc(Inversion of Contr..

혼공자 Chapter 6-2

1. 필드란? 객체의 고유 데이터, 상태데이터, 부품 객체를 저장하는 곳이다. 예를 들어 컴퓨터라는 객체가 있다고 가정하자, 컴퓨터는 객체에는 고유데이터, 상태데이터, 부품이 있을 것이고 클래스는 아래와 같이 생성될 것이다. 2. 필드 선언 필드 선언은 어떤 곳에서도 선언이 가능하지만 생성자와 메소드 블록 내부에서는 선언할 수 없다. 필드 선언은 변수의 선언과 비슷하다. (필드를 변수로 부르지 않도록 주의!!) 타입 필드 [ = 초기값 ] ; 타입에는 기본타입과 참조타입 모두 올 수 있다. 필드의 초기값은 선언시 만들 수 있고, 생략할 수도 있다. 올바르게 필드를 선언한 예시) 상단 그림의 Computer 클래스에서 필드에 고유데이터, 상태데이터를 저장하면 아래와 같을 것이다. public class C..

혼공자 Chapter 6-1

* 절차 지향 프로그래밍 * 객체지향 언어 개념이 나오면서 기존 프로그래밍 방식을 표현하기 위해서 사용함. * 큰 틀은 일렬의 동작을 순서에 맞게 단계적으로 실행함. * 데이터와 속성 보다는 명령어의 순서와 흐름에 포커싱 * 소프트웨어 규모가 커지면서 기능들이 복잡해지면서 추가 개발이나 유지보수의 어려움의 한계 * 객체지향 프로그래밍 * 클래스를 생성하고 클래스로부터 객체를 만들어 객체 간의 상호작용을 이용하여 주어진 문제를 해결하는 프로그래밍 방식 * 데이터인 필드와 절차인 메소드를 하나로 묶은 클래스 단위의 프로그램 * 현실 세계를 객체 단위로 프로그래밍하여, 객체는 필드(데이터)와 메서드(코드)를 하나의 블럭으로 묶어서 표현 ⭐️객체지향 프로그래밍이 생기게 된 원인을 알면은 객체지향프로그래밍에 대해..

항해99 1주차 WIL(Json Web Token)

JWT(Json Web Token) 1. 설명 - JSON 웹 토큰(JSON Web Token, JWT, "jot”)은 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로, 페이로드는 몇몇 클레임(claim) 표명(assert)을 처리하는 JSON을 보관하고 있다. 토큰은 비공개 시크릿 키 또는 공개/비공개 키를 사용하여 서명된다. 이를테면 서버는 "관리자로 로그인됨"이라는 클레임이 있는 토큰을 생성하여 이를 클라이언트에 제공할 수 있다. 그러면 클라이언트는 해당 토큰을 사용하여 관리자로 로그인됨을 증명한다. 이 토큰들은 한쪽 당사자의 비공개 키(일반적으로 서버의 비공개 키)에 의해 서명이 가능하며 이로써 해당 당사자는 최종적으로 토큰이 적법한지를 확인할 수 있다. 일부 적절하..