전체 글

공부하면서 정리하는 블로그입니다. 틀린 내용이나 피드백 적극 환영합니다^^
· devops
1. JAVA 17 설치 sudo apt install openjdk-17-jdk 위 sudo 명령어를 입력해서 JDK 17버전을 설치해보자. 2. 설치 확인 java -version 3. jar 확인 참고로 jar는 java 애플리케이션을 build하면 생성되고, Java 클래스 파일, 리소스 파일 및 메타데이터를 하나의 파일에 압축하여 저장한 파일형태이다. 배포할 때 사용한다. ls 명령어를 사용하여 jar 파일이 있는지 확인했다. 4. 실행 및 결과 java -jar "jar 파일명" 예를 들어 "hello_spring-0.0.1-SNAPSHOT.jar" 파일을 실행할 경우 아래의 명령어 형태로 입력하면 된다. hello_spring-0.0.1-SNAPSHOT.jar 또한 실제 배포를 할 경우에는 ..
· devops
1. cron이란? 특정 시간 조건에 따라 주기적으로 특정 로직을 실행하는 프로그램이다. 애플리케이션에서 특정 로직을 처리해도 되긴 하지만 cron을 사용하면 시스템 레벨에서 동작하기 때문에 안정적이다. 하지만 유지보수가 어렵기 때문에 여러 요인을 고려해서 사용해야 한다. crontab은 cron 설정 정보를 파일로 관리하는 것을 말한다. 2. cron 주기 cron 주기를 설정해 특정 시간마다 특정 로직을 수행할 수 있다. 함께 사용하는 기호 기호와 함께 주기를 설정하면 간편하게 설정할 수 있다. 예시 * * * * *: 매시간, 매분, 매일, 매월, 매요일에 실행 0 2-4 * * *: 매일 2시부터 4시 사이에 실행 */15 * * * *: 매 15분 마다 실행 0 0 * L * *: 매월 마지막 ..
· devops
1. 파일 생성과 vi 편집기 실행 hello_shell.sh를 vi편집기로 열어준다. (hello_shell.sh 파일이 없을 경우 새로 생성) vi hello_shell.sh 2. script 작성 및 저장 !/bin/bash : shell 을 사용하겠다는 의미 echo “hello world”: hello world를 출력 exit 0 입력 후 esc를 누른 뒤 :wq 입력하여 저장 후 종료 3. 실행 권한 확인 및 권한 부여 ls 명령어를 통해 해당 파일의 권한을 확인해보면 실행 권한이 없을 것이다. chmod 755 “hello_shell.sh” 입력하여 실행 권한 부여하면 파일 소유자에게 실행 권한을 부여해준다. 4. 실행 bash 명령어를 사용하여 실행 해주었다. 정상적으로 동작하는 것을 확..
· devops
명령어 정리 cd: 디렉터리 이동 cd [PATH]”: 이동하려는 디렉터리로 이동 cd ~ : 홈 디렉터리로 이동 cd / : 최상위 디렉터리로 이동 cd . : 현재 디렉터리 cd .. : 상위 디렉터리로 이동 cd - : 이전 경로로 이동 ls: 현재 위치의 파일 목록 조회 ls -l **:** 파일의 상세정보 ls -a : 숨김 파일 표시 ls -t : 파일들을 생성시간순(제일 최신 것부터)으로 표시 ls -rt **:** 파일들을 생성시간순(제일 오래된 것부터)으로 표시 ls -f : 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등) *ll : 숨긴 파일과 함께 파일 상세정보 조회(ls -alF) rm: 파일 삭제 rm [fi..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다. 1. 서론 컴포넌트 스캔과 의존관계를 자동으로 주입받게 되는 과정에 대해서 다루었던 적이 있다. 이 포스팅에서는 의존관계를 주입하는 4가지 방법들에 대해서 다루겠다. 2. 의존관계 자동주입 방법 4가지 생성자 주입 setter 주입 필드 주입 일반 메서드 주입 의존관계를 주입하는 방법에는 4가지가 있다. 하나씩 예제를 통해서 정리해보자. 의존관계를 주입할 때 기본적으로 @Autowired 어노테이션을 사용한다. 참고로 @Autowired는 빈을 찾아서 주입하게 되는데 주입할 대상이 없을 경우 에러가 발생한다. 주입할 대상이 없더라도 동작하게 하려면 @Autowired(required = false)로 지정하면 된다. a. 생성자 주입 @Co..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다. 1. 컴포넌트 스캔(Component Scan) 지금까지 스프링 빈에 등록하고 의존관계를 주입할 때 @Bean이나 XML 파일을 통해서 설정 정보에 등록하여 스프링 빈에 등록하고, 의존관계를 설정했다. 복잡도가 커지면 이 방법 또한 매우 귀찮은 작업이다. @CompoentScan을 통해 @Component로 설정된 클래스는 스프링 빈에 등록하고 @Autowired를 통해 의존관계를 자동으로 주입하는 방법에 대해 알아보자. 2. 컴포넌트 스캔 사용 방법 AutoAppConfig.java(컴포넌트 탐색 역할 담당) @Configuration @ComponentScan public class AutoAppConfig { } AutoAppConfi..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다 1. DI, IoC 탄생배경 DI, IoC가 없었더라면, 객체지향의 원칙 중 DIP, OCP 등을 완벽하게 지킬 수 없다. 코드를 보자. public class MemberServiceImpl implements MemberService { private MemberRepository memberRepository = new MemoryMemberRepository(); } MemberServiceImpl은 MemoryMemberRepository와 의존관계를 가진다. MemberReposiory는 인터페이스로 구현체(클래스)가 바뀔 경우 MemberServiceImpl에서도 코드를 변경해줘야 한다. ⇒ 객체지향 설계원칙(DIP, OCP)를 ..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 객체지향 프로그래밍(OOP, Object-Oriented Programing) 객체지향 프로그래밍이란 프로그래밍에 필요한 데이터와 행위를 가진 객체를 만들고, 객체에게 적당한 책임을 할당하고 그 객체들 간의 유기적인 상호작용을 통해 논리적인 흐름(로직) 구성하는 프로그래밍 방법이다. 객체지향 프로그래밍을 한미디로 정리하면 객체들 간의 상호작용을 통해 프로그래밍하는 방법이다. 그럼 객체지향에서 말하는 객체가 무엇일까? 2. 클래스 / 객체 / 인스턴스 클래스(Class)란? 객체를 정의하고 만들어 내기 위한 설계도를 의미한다. 속성(필드) + 행위(메서드)로 구성된다. 사용자 정의 타입이라고도 하며, 서로 관련된 값을 묶어서 ..
kmindev
평생쓰는 IT 개발 노트