본문 바로가기

전체 글152

[Spring] @Configuration과 싱글톤 패턴의 관계 싱글톤 패턴 조건 Bean 설정 정보를 구현한 AppConfig 클래스에서 memberRepository 메서드는 MemoryMemberRepository 클래스의 인스턴스를 반환합니다. 그렇다면 memberService, orderService 메서드에서 memberRepository 메서드를 호출할때 마다 새로운 인스턴스를 생성하여 싱글톤 패턴이 안될것 같은데 스프링에서 어떻게 싱글톤 패턴을 유지하는지 알아 보겠습니다. AppConfig.java @Configuration public class AppConfig { @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public D.. 2023. 12. 13.
[Spring] 싱글톤 패턴과 싱글톤 컨테이너 개념 [Spring] 싱글톤 패턴과 싱글톤 컨테이너 개념 싱글톤 컨테이너의 개념 싱글톤 컨테이너란 클래스의 인스턴스가 Java JVM 내의 단 하나만 존재하는 것을 뜻합니다. 웹 애플리케이션은 수많은 클라이언트로부터 서비스 요청을 받는데 만약 서버에서 클라이언트의 요청을 받아 처리할때마다 내부에서 클래스 인스턴스를 생성하게 되면 JVM 메모리의 사용량이 증가하게 되고 서버는 부하를 감당할 수 없게 될 것입니다. 테스트 코드 간단한 테스트 코드를 통해 위의 상황을 확인 해보겠습니다. Appconfig.java @Configuration public class AppConfig { @Bean public MemberRepository getMemberRepository() { return new MemoryMem.. 2023. 12. 13.
[Spring] MongoDB 연동하고 데이터 관리하기 [Spring] MongoDB 연동하고 데이터 관리하기 MongoDB는 NoSQL 데이터베이스중 하나로 여러 기업에서 사용하고 있을정도로 성능이 검증된 데이터베이스입니다. MongoDB의 기본적인 구조는 데이터베이스, 컬렉션, 도큐먼트 단위로 관리됩니다. 일반적인 RDBMS와 비교해보면 다음과 같습니다. MongoDB RDBMS (Oracle, Mysql...) Database Database Collection Table Document Row Spring Boot 기본 설정 의존성 추가 mongodb, spring web을 사용하기위해 의존성을 추가합니다. implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'.. 2023. 12. 13.
CentOS Apache 설치, 실행하는 방법 Linux에서 Apache 설치, 실행하기 Apache 설치 Apache를 설치하기전에 기존 아파치가 설치 되어있을수도 있으니 먼저 확인합니다. rpm -qa | grep httpd 설치가 안된것을 확인후에 아파치를 설치합니다. 설치 경로는 /etc/httpd 에 생성됩니다. yum install httpd Apache 설치후 작업 방화벽 설정 Apache가 외부에서 접근할 수 있도록 방화벽 설정을 변경해야 합니다. firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload CentOS8, Redhat8 부터는 다음과.. 2023. 12. 8.
k9s 설치와 사용방법 (쿠버네티스 UI 관리 도구) 쿠버네티스 관리를 위한 k9s 설치와 사용방법 k9s 란? 쿠버네티스 클러스터를 관리하는 방법으로는 kubectl, Rancher, GKE, AKS, Open Lens 등 여러가지 도구가 있는데 이번 글에서는 터미널 기반 관리도구인 k9s에 대해 설명 드리겠습니다. 쿠버네티스를 k8s이라는 문자로 표현하기도 하는데 Kubernetes에서 첫글자 K와 마지막 s 사이의 문자가 8개라 그렇게 표현한다고 합니다. k9s는 약간 다른 방식으로 이름이 만들어졌는데 미국에서 개과 동물을 뜻하는 단어인 Canine은 발음이 비슷한 K9(K-nine) 이라는 은어로도 사용되었는데 주로 군경조직에서 사용되었기 때문에 K9은 경찰견 혹은 군견이라는 의미를 가지고 있습니다. 그때문인지 k9s는 쿠버네티스 클러스터를 마치 탐.. 2023. 12. 8.
Java8 함수형 인터페이스 Function, Consumer, Predicate, Supplier Java8 함수형 인터페이스 Function, Consumer, Predicate, Supplier 예제 바로 가기 함수형 인터페이스 개념 Function Consumer Predicate Supplier 함수형 인터페이스 개념 주요 특징 단 하나의 추상메서드(SAM: Single Abstract Method)만 가지는데 이 메서드가 함수형 인터페이스의 주요 동작을 결정합니다. 람다 표현식으로 표현 가능합니다. Java8에서 추가된 함수형 인터페이스에는 기본적으로 제공하는 함수형 인터페이스인 Function, Consumer, Predicate, Supplier 등이 있습니다. 각 함수형 인터페이스의 역할은 다음과 같습니다. Consumer: T 타입의 인수를 받아 아무것도 반환하지 않습니다. Funct.. 2023. 11. 15.
리눅스 명령어 sed 옵션 설명과 사용 방법 리눅스 명령어 sed 옵션 설명과 사용 방법 sed 명령어 sed는 유닉스 명령어로, 유닉스나 리눅스 OS에서 파일내의 텍스트 특정 패턴을 찾아서 원하는 형식으로 변경하거나 추출하는 데 사용됩니다. 특정 문자열을 기준으로 행을 제거 하거나 텍스트 치환, 줄 삭제/추가, 특정 라인 출력 등등 다양한 텍스트 처리가 가능합니다. sed 옵션 설명 -n, --quiet, --silent 결과를 출력하지 않고 파일의 내용을 수정합니다. sed -n 's/Hello/Goodbye/g' test.log -n을 사용하지 않으면 결과가 출력됩니다. sed 's/Hello/Goodbye/g' test.log Goodbye Goodbye Goodbye -f script-file, --file=s.. 2023. 11. 13.
패키지 관리자 Yum Repository 사용 방법 패키지 관리자 Yum Repository 사용 방법 Yum Repository yum은 Yellowdog Updater Modified의 약자로, RPM 기반의 리눅스 배포판에서 소프트웨어 패키지를 쉽게 설치, 업데이트 및 제거하기 위한 패키지 관리자입니다. yum은 리눅스 시스템에서 의존성을 해결하고 필요한 패키지를 설치하는 데 도움을 줍니다. yum repository 는 yum 패키지 관리자가 패키지를 찾고 다운로드하는 위치를 가리킵니다. 리눅스 배포판은 기본적으로 여러 개의 레포지토리를 제공하며, 각 레포지토리에는 여러 종류의 패키지가 포함되어 있습니다. 주요 레포지토리의 예시로는 CentOS에서는 Base, Updates, Extras, EPEL 등이 있습니다. 이러한 레포지토리는 시스템 패키지.. 2023. 11. 13.