전체 글 30

Git 연습 #2(mac os)

2022.07.21 - [Git] - Git 연습 #1(mac os) Git 연습 #1(mac os) 깃 설치 brew install git ※ homebrew가 없으시면 https://brew.sh에서 설치 해주세요 Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 깃까지 설치가 완료되시면 깃 연습을 할 폴더를 만듭.. choiiii-dev.tistory.com 이전 글을 안보신 분들은 보고 오시기 바래요~ 이전 글에 이어서 깃 커밋을 연습하겠습니다. 명령어 : git commit ~/projects/git master ±✚ > git commit [master (최상위-커밋) 4c0f613] Title 3 files changed,..

Git 2022.08.09

Git 연습 #1(mac os)

깃 설치 brew install git ※ homebrew가 없으시면 https://brew.sh에서 설치 해주세요 Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 깃까지 설치가 완료되시면 깃 연습을 할 폴더를 만듭니다. ~ mkdir -p projects/git ~ cd projects/git ~ git init ※ git init : 저장소를 초기화 하기 위한 명령어 입니다. ~/projects/git master ls -al total 0 drwxr-xr-x 3 staff 96 7 21 23:32 . drwxr-xr-x 3 staff 96 7 21 23:27 .. drwxr-xr-x 9 staff 288 7 21 23:32 .g..

Git 2022.07.21

싱글톤

싱글톤 스프링은 별도의 설정을 하지 않으면 내부에서 생성하는 빈 오브젝트를 싱글톤으로 만든다.​ 빈을 싱글톤으로 만드는 이유 스프링이 주로 적용되는 대상이 자바 엔터프라이즈 기술을 사용하는 서버환경 이기 때문이다. 또 하나의 요청을 처리하기 위해 데이터 엑세스 로직, 서비스 로직, 비즈니스 로직, 프레젠테이션 로직 등 다양한 기능을 담당하는 오브젝트 들이 참여하는 계층형 구조로 이루어진 경우가 대부분이다. 그런데 클라이언트에서 요청이 올 때마다 각 로직을 담당하는 오브젝트를 새로 만들어서 사용한다고 생각해보면 요청 한번에 5개의 오브젝트가 만들어지고 초당 50개의 요청이 들어오면 초당 250개의 새로운 오브젝트가 생성되는게 된다. 1분이면 15만개가 만들어진다. 아무리 자바의 오브젝트가 생성과 가비지컬렉..

Spring Framework 2022.03.22

Ubuntu에 Docker 설치

공식 문서에 이미 있지만 작성해봅니다. https://docs.docker.com/engine/install/linux-postinstall/ Post-installation steps for Linux docs.docker.com 우선 서버를 준비해주세요 VirtualBox를 이용한 웹 서버 만들기(1) 환경 준비 VirtualBox를 이용한 웹 서버 만들기(2) 네트워크 준비 VirtualBox를 이용한 웹 서버 만들기(1) 환경 준비 공부용으로 사용할 서버가 필요했는데 클라우드 서비스를 이용하면 무료기간이 지난 이후에는 비용이 청구되고 오라클은 선착순이라길래 집에서 놀고 있는 데스크톱에 가상 머신으로 서버를 choiiii-dev.tistory.com 도커를 설치하기전에 이전 버전을 제거 해 줍니다...

Server/docker 2021.11.10

VirtualBox를 이용한 웹 서버 만들기(2) 네트워크 준비

네트워크 준비 호스트 네트워크 관리자 설정 IPv4 주소 수정 cmd창을 열어 ipconfig를 입력합니다. 호스트 네트워크 관리자 창을 엽니다 첫 번째 이미지의 가려진 부분의 ip를 아래 이미지의 가려진 부분에 붙여 넣기 합니다. VirtualBox의 설정 탭 > 네트워크 다음에 연결됨(A)를 어댑터에 브리지로 설정 버추얼박스는 네트워크 어댑터로 총 7가지를 지원한다고 합니다. 보통 2가지 방식을 많이 사용 하는데 NAT 과 Bridged Adapter입니다. NAT 네트워크 연결 흐름 외부 클라이언트 컴퓨터 ↑↓ 공유기 ↑↓ 호스트 PC ↑↓ 버추얼박스 ↑↓ 가상 머신 내 서버 Bridged Adapter 네트워크 연결 흐름 외부 클라이언트 컴퓨터(공인 아이피와 개방된 포트) ↑↓ 공유기(사설 아이피..

Server/VirtualBox 2021.11.09

VirtualBox를 이용한 웹 서버 만들기(1) 환경 준비

공부용으로 사용할 서버가 필요했는데 클라우드 서비스를 이용하면 무료기간이 지난 이후에는 비용이 청구되고 오라클은 선착순이라길래 집에서 놀고 있는 데스크톱에 가상 머신으로 서버를 구축하기로 했다. Part 1 환경 준비 - Oracle Vm VirtualBox 설치 https://www.virtualbox.org/wiki/Downloads Downloads – Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respe..

Server/VirtualBox 2021.11.07

람다식

람다란 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징 익명 보통의 메서드와 달리 이름이 없으므로 익명이라 표현, 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다 간결성 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 커스텀 Comparator -> 람다 1. 기존 코드 Comparator byWeight ..

JAVA 2021.08.30

스프링부트 CORS 설정

[HTTP] - CORS 교차 출처 리소스 공유 CORS 교차 출처 리소스 공유 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브 choiiii-dev.tistory.com 이전 글처럼 CORS에러가 발생했을 때 스프링에서 해결하는 방법. 1. Global 설정 추가 프로젝트 하위 폴더에 config 패키지 생성 -> WebConfig.java 파일 생성 후 //@Configuration은 설정파일을 만들기 위한 어노테이션입니다. @Configuration public class WebConfig implements WebMvc..

HTTP 2021.08.29

CORS 교차 출처 리소스 공유

교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. ※교차 출처 요청 예시 http://localhost:3000의 프론트 엔드 프로젝트에서 백 엔드 프로젝트인 http://localhost:8080에 요청하는 경우 보안 상의 이유로 브라우저는 교차 출처 HTTP 요청을 제한합니다. 접근 제어 시나리오 교차 출처 리소스 공유가 동작하는 방식을 보여주는 세 가지 시나리오가 있습니다. 단순 ..

HTTP 2021.08.23

컴포넌트 스캔

컴포넌트 스캔 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. @Configuration //설정정보 @ComponentScan( // 스캔을 시작할 위치 basePackages = "hello.core.member", // @Configuration이 붙은 클래스는 스캔 대상에서 제외 excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) //@Component 어노테이션이 붙은 클래스들을 빈으로 등록함 public class AutoAppConfig { } basePackages : 탐색할 패키지의 시작 위치를 지정한다. 이 패..

Spring Framework 2021.08.19