전체 글
싱글톤(Singleton)과 정적(Static)의 차이
디자인패턴의 싱글톤패턴 강의를 듣고 언뜻 드는 생각이 있었다. GoF::싱글톤 패턴(Singleton Pattern)이 글은 '백기선의 코딩으로 학습하는 GoF의 디자인 패턴' 강좌를 듣고 해당 내용을 공부하며 정리한 글입니다. 싱글톤 패턴(Singleton Pattern) 인스턴스를 오직 한 개만 만들어서 제공하는 클래스가dev-sanghun.tistory.com 해당 패턴 자체가 인스턴스를 오직 한 개만 만들어서 제공하는 클래스가 필요한 경우에 사용하는 패턴인데 여기서 오직 한개만 만들어서 제공되다는 말에 static이 떠올랐다. 일단 싱글톤과 스태틱의 특징을 정리하면 다음과 같다. 싱글톤과 정적의 특징싱글톤단 하나의 객체만을 생성할 수 있는 패턴으로 객체를 생성하려고 할 때마다 이미 생성된 것을 반..
스프링 웹 개발 기초
해당 포스팅은 김영한님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 듣고 정리한 내용으로, 섹션 2. 스프링 웹 개발 기초에 관한 강의를 정리한 내용이다. 정적 컨텐츠 정적컨텐츠란? 서버에 저장되어 있는 페이지를 그대로 내려주는 방식 우선 스프링부트에서는 정적 컨텐츠 기능을 제공하는데 resource - static 폴더에서 파일을 찾아 제공하게 된다. 다만 말그대로 서버에 있는 파일 그대로 화면을 띄우기 때문에 해당 페이지에서 어떠한 동작을 제공하기가 힘들기 때문에 다른 방식을 찾게 된다. 동작원리 웹 브라우저의 요청 내장 톰캣 서버의 해당 컨텐츠 찾기 스프링 컨테이너에 접근(관련 컨트롤러가 없다? 정적컨텐츠이다) static 폴더내에서 해당 파일을 찾는다. 위..
[이것이자바다] chapter 1. 자바 시작하기
" 이것이 자바다 - 신용권의 Java 프로그래밍 정복" 공부하며 정리한 글 입니다. chapter 1. 자바 시작하기 자바를 실무에서 요령껏 사용하다보니 기초가 부족해 실수하는 영역이 많아...예전에 보려고 사둔 책을 꺼내들었다. 물론, 이책의 자바버전과 현재 버전은 다르나 현재 사용하는 자바 버전에는 문제가 없어 해당 책으로 정리하며 공부를 해보려고 한다. 1. 1 프로그래밍 언어란? 기계어 : 컴퓨터가 이해할수 있는 언어로 0, 1로 이루어진 이진코드 자연어 : 사람이 일상적으로 사용하는 언어로 컴퓨터가 이해하기 힘든 언어(문자집합) 프로그래밍 언어 : 기계어와 자연어의 매개채로 사람이 컴퓨터와 대화(?)할 수있게 하는 언어 고급언어 : 좀 더 사람이 쉽게 이해할 수 있는 언어 > 컴퓨터가 바로 이..
Kubernetes::우분투환경에서 Kubectl과 Kustomize 설치
Kubecl 소개 우선 Kubectl은 쿠버니티스의 API 서버와 통신하여 사용자 명령을 전달할 수 있는 CLI 도구이다. Kubectl 설치가이드는 아래 사이트에서 확인할 수 있다. Install and Set Up kubectl on Linux Before you begin You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.27 client can communicate with v1.26, v1.27, and v1.28 control planes. Using the latest compatible version of kubectl helps avoid ku..
[모던 자바 인 액션] chapter 1. 자바 8, 9, 10, 11???
" Modern Java In Action - 모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드 " 공부하며 정리한 글 입니다. Chater1. 자바 8,9,10,11: 무슨 일이 일어나고 있는가? 자바는 1996년 발표된 이유로 새로운 기능이 계속 릴리즈 되어 발전되어왔고, 현재에도 많이 쓰이는 언어중 하나이다. 이러한 발전에 있어서 가장 큰 변화가 자바 8에서 일어났다. 1.1 역사의 흐름은 무엇인가? 위에서 말한것과 같이 현재 11까지 릴리즈된 상황에서 매번 변화가 있었지만 자바 8에서는 그 역사상 가장큰 변화가 있었다. 자바 8은 이제 좀 더 자연어에 가깝게 간단한 방식으로 코드를 구현할 수 있게 변화하였다. 예를 들어, 그동아 자바에서 어떤 객체(사과)의 무게를 비교하기위해서..
Docker::우분투 환경에 Docker 설치하기
우분투 환경에 Docker 설치하기 우분투 환경에 Docker를 설치하려고 한다. 설치 가이드는 아래 사이트를 통해 확인 할 수 있다. Install Docker Engine on Ubuntu docs.docker.com 해당 가이드에는 우분투를 설치할 수 있는 방법이 순서대로 나와있기 때문에 잘 따라하면 설치를 할 수 있을 것이다. 사용하기 위한 저장소를 설치 우선 위 가이드가 안내하는 순서에 맞춰 진행하면 됩니다. 업데이트 및 HTTP 패키지 설치 > Update the apt package index and install packages to allow apt to use a repository over HTTPS. sudo apt-get update sudo apt-get install \ ca-..
가상머신::VMware에 Ubuntu 설치하기
VMware에 Ubuntu 설치하기 개인적인 공부(?) 목적으로 ubuntu 환경이 필요하여 VMware에 Ubuntu를 설치하고자 한다. 우선 가상머신을 준비하여 준다. 내가 준비한 가상머신은 VMware이다. 해당 포스팅(가상머신::VMware 설치하기)을 참고하면 될거 같다 Ubuntu 이미지 다운로드 Enterprise Open Source and Linux | Ubuntu Ubuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT. ubuntu.com The Ubuntu release cycle 현재(23.02.15 기준) 기준으로 가장 최근 LTS버전인 2..
가상머신::VMware 설치하기
VMware 설치하기 하나의 컴퓨터로 여러 운영체제를 사용하고자 할 때 가상머신이 필요하게 되는데 나의 경우 학습을 위해 리눅스환경이 필요로 하여 설치를 하게 되었다. 가상머신은 보통 Virtual Box와 VMware 나뉘는데 딱히 그차이점은 잘 모르겠고(나중에 비교한번 해보도록 하겠다) 좀 더 성능이 좋다고 평가받는 VMware를 설치하려고 한다. 설치장소 우선 VMware는 홈페이지 에서 설치할 수 있습니다. 제품 카테고리에서 Workstation Player 버전을 다운로드 하면 무료로 설치해서 이용할 수 있습니다. 운영체제에 맞는 제품선택 현재 본인의 운영체제에 맞는 제품을 선택해 주면된다. VMware Workstation 17 Player Setup 다운받은 Setup 파일을 실행하여 설치를..
Ch 01::파트 개요 및 실습 준비(02)
파트 개요 및 실습 준비 해당 글은 'Fastcampus'의 나정호님의 강의 'Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA'를 보고 작성한 개인 정리글입니다. Docker for Desktop 소개 도커는 본래 리눅스 컨테이너를 관리하는 기술이기 때문에 기본적으로 macOS / Windows 에서 네이티브로 사용하기 힘들다. 다만, 윈도우와 맥 운영체제에서 도커를 사용할수 있도록 한 애플리케이션으로 추가적인 경량 가상화 기술을 사용하였으며, docker와 docker-compose 모두 포함하고 있습니다. 또한, 데스크탑 GUI 또한 제공하여 시각적으로 좀더 편리하게 사용할수 있지만, 모든 기능을 완선히 사용하려면 리눅스에서 사용하는 것이 바람직하다고 하는데 현재도 그러한지는..
Ch 01::Docker 기초 파트개요(01)
Docker 기초 파트개요 해당 글은 'Fastcampus'의 나정호님의 강의 'Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA'를 보고 작성한 개인 정리글입니다. 컨테이너 기술의 발전 어떻게 서비스를 효율적으로 운영할 것인가? 로 부터 시작된 고민을 해결하면서 발전되어옴 전통적인 배포환경에서 점차 비용과 컴퓨팅 자원을 최대한 효율적으로 사용하고자 함. 그 결과 나온 배포환경이 가상화를 통한 배포방법이다. 다만, 가상머신을 이용한 방법에 발생한 문제가 있는데 결국 하드웨어 자원을 나눠서 쓰다보니 각각의 가상머신의 성능이 떨어질 수밖에 없으며, 그리고 각각의 가상머신을 띄우는데 필요한 자원 또한 많이 필요하다. 그러한 고민에서 나온 배포 환경이 컨테이너 엔진을 이용한 배포이다. 해..
오류해결::spring-boot-maven-plugin not found
오류해결 spring-boot-maven-plugin not found 4.0.0 org.springframework.boot spring-boot-starter-parent 3.0.2 ... 중략 org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok POM 파일을 확인해보면 다음과 같이 확인할 수 있는데 이경우는 spring-boot-maven-plugin이 spring-boot-starter-parent의 버전을 제대로 따라가지 못해서 나타나는 것으로 생각된다. 그렇기 때문에 해당 버전을 명시해주면 되는데 명시하는 방법은 다음과 같다. 해결방법 우선 spring-boot-maven-plugin의 버전과 spring-boo..
오류해결::Dependency 'org.springframework.boot:spring-boot-starter-web:2.3.0.RELEASE' not found
오류해결 Dependency 'org.springframework.boot:spring-boot-starter-web:2.3.0.RELEASE' not found 스프링 부트에서 간단한 프로젝트를 만든후 빌드하거나 혹은 빌드전 IDE 자체에서 이러한 오류 메시지를 보여주는 경우가 있는데 그 경우 해결방법은 다음과 같다 해결방법 Invalidate Caches and Restart 를 통해 해당 문제를 해결할 수가 있다. 이렇게 진행하면 자체내에서 리스타트시 pom의 싱크를 다시 잡아주게 되어 해당 문제가 해결된다.