공부

· 공부/Infra
Docker 다운로드 1. docker 다운로드 링크 : https://www.docker.com/get-started/ 2. 다운로드가 다 되면 wsl --update 를 하라는 경고문이 뜨는데 cmd 켜준 후 바로 진행. 3. 로그인 👁‍🗨 Docker를 다운로드 하면 작업관리자에 Vemmem가 생긴다. Docker에 약 4GB의 메모리가 주어진다. 👁‍🗨 Docker에서는 Image를 다운받아서 실행할 수 있는데 다운 받는 것은 쉽게 말하면, CD게임이라고 생각하면 된다. 요즘에는 CD드라이브가 없기 때문에 CD가 .iso 파일로 다운 받을 수 있게 변했다. 즉, .iso파일을 다운 받는다고 생각하면 된다. ✅ docker hub 에 들어가서 docs를 보면서 진행하면 여러가지 모듈들을 전부 설치없..
· 공부/Infra
jenkins란? Jenkins는 중앙 빌드 및 지속적인 통합 프로세스가 가능하며, Windows, macOS 및 기타 Unix 계열 운영 체제용 패키지가 포함된 독립형 Java 기반 프로그램이다. 수백개의 플러그인을 사용할 수 있는 Jenkins는 소프트웨어 개발 프로젝트의 빌드 파이프라인 구성, Build 자동화의 확립, 배포 및 테스트 자동화 등을 지원한다. jenkins 구축 Google Cloud에서 VM인스턴스 생성 후, 명령프롬프트에 연결(putty 사용했음) 1. jenkins 설치 다운로드 링크 : https://pkg.jenkins.io/debian-stable/ curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key |..
· 공부/Infra
CI/CD란? CI(Continuous Integration) 지속적인 통합 빌드, 테스트 자동화 1. 빌드(Build) 2. 테스트(Test) 3. 통합(Merge) ✔ CI 적용 전 : 개발을 마치고 배포 후 오류를 확인했다. ✔ CI 적용 후 : - 코드 변경 사항을 정기적으로 빌드, 테스트하여 공유 레포지토리에 통합되는 과정을 통해 품질을 유지하면서 개발을 진행한다. - 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리 가능하다. → ⌚ 하지만, 개발자가 직접 코드를 병합하고 빌드, 테스트를 검증하는 것은 시간이 많이 소요됨 ≫ 자동화 CI 순서 1. 개발자가 구현한 코드를 기존 코드와 병합 2. 변합된 코드가 올바르게 동작하고 빌드되는지 검증 3. 테스트 결과에 문제가 ..
· 공부/Infra
직접 프로그램 설치 mysql설치 참고 링크 : https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/ 1. 다운로드 링크 web get(마치 클릭하는 것과 같음..) wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb 2. dpkg(debian package)에서 config_0.8.26-1_all.deb 파일을 설치 sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb OK 선택 3. apt 업데이트 sudo apt-get update 4. mysql-server 서버 다운 sudo apt-get install mysql-server MySQL 비번 정하고 OK..
IoC, DI, 컨테이너 제어의 역전 IoC(Inversion of Control) 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성, 연결, 실행했다. 즉, 구현 객체(예를들어, Service에서 생성, 연결, 실행 다 함..)가 프로그램의 제어 흐름을 스스로 조종했다. 하지만! AppConfig를 생성한 이후에는 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 즉, 프로그램의 제어의 흐름은 AppConfig가 가져간다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 OrderServiceImpl 도 AppConfig가 생성한다. 그리고 AppConfig는 OrderServiceImpl 이 아닌 OrderService 인터페이스의 다른 구현 객체..
좋은 객체 지향 설계의 5가지 원칙(SOLID 원칙) 1.SRP : 단일 책임 원칙(Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다 → 기준은 변경이다. 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것이다. 2. OCP : 개방-폐쇄 원칙(Open/Closed Principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 다형성 활용 → 인터페이스를 구현한 새로운 클래스를 하나 만ㄷ르어서 새로운 기능을 구현 역할과 구현의 분리하면 된다. 3. LSP : 리스코프 치환 원칙(Liskov Substitytion Principle) 프로그램의 객체는 프로그램의 확장성을 깨뜨리지 않으면서..
요약 Spring MVC의 @RestController은 @Controller와 @ResponseBody의 조합 (@Controller + @ResponseBody = @RestController) @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 찾는 것. @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아서 전송. 차이 1. @Controller는 클래스를 Spring MVC 컨트롤러로 표시하는데 사용 @RestController는 RESTful 웹 서비스에서 사용되는 특수 컨트롤러이며 @Controller + @ResponseBody와 동일 // 아래 두 코드는 동일한 동작 // @Controller..
· 공부/MSA
MSA란? MSA는 소프트웨어 개발 기법 중 하나로, 어플리케이션 단위를 '목적'으로 나누는 것 MSA 배경(Monolithic vs MSA) 모노리틱 아키텍쳐(Monolithic Architecture) 모노리틱 아키텍쳐 스타일은 기존의 전통적인 웹 시스템 개발 스타일로, 하나의 애플리케이션 내에 모든 로직들이 모두 들어 가 있는 “통짜 구조” 이다. 예를 들어, 온라인 쇼핑몰 애플리케이션이 있을때, 톰캣 서버에서 도는 WAR 파일(웹 애플리케이션 패키징 파일)내에, 사용자 관리,상품,주문 관리 모든 컴포넌트들이 들어 있고 이를 처리하는 UX 로직까지 하나로 포장되서 들어가 있는 구조이다. 장점 각 컴포넌트들은 상호 호출을 함수를 이용한 call-by-reference 구조를 취한다. 전체 애플리케이션..
ResponseEntity ?Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스를 상속받아 구현한 클래스가 RequestEntity, ResponseEntity 클래스이다.이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpStatus, HttpHeaders, HttpBody를 포함한다.참고 https://devlog-wjdrbs96.tistory.com/182  프로젝트에서 활용장바구니가 추가 기능에서 활용하였다.값이 NULL일 경우, 장바구니 추가 가능 / 값이 NULL이 아닐 경우,  예외처리 에러 클래스 package com.example.shopping.common;public class RestError { private S..
CORS(Cross-origin resource sharing)웹 페이지의 제한된 자원을 외부 도메인에서 접근을 허용해주는 매커니즘 * : 모든 도메인 허용할 경우@RestController@RequiredArgsConstructor@RequestMapping("/api/v1/products")@CrossOrigin("*") // * : 모두 접근 허용public class ProductController {} 특정 도메인 허용할 경우콤마로 구분@CrossOrigin(origins = "http://domain1.com, http://domain2.com")@RequestController@RequestMapping("/account")public class AccountController{ @..
sesam
'공부' 카테고리의 글 목록 (11 Page)