전체 글(593)
-
Logback 라이브러리 설정
설정 파일 loback의 기본 설정 파일은 logback.xml 입니다. logback 라이브러리는 classpath 아래에 위치하는 logback.xml을 기본으로 탐색합니다. xml 파일에 로그 설정 logback.xml 파일에 다음과 같이 설정할 수 있습니다. %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 기본 로그 레벨은 info 레벨로 설정됩니다. kr.codesquad.cafe 패키지의 로그 레벨은 debug 레벨로 설정됩니다. 로그 출력 방식은 콘솔(ConsoleAppender)로 설정됩니다. 로그 레벨(log level) 로그 레벨은 다음과 같습니다. TRACE < DEBUG < INFO < WARN < ERROR 1) ERROR : ..
2023.04.24 -
SLF4J 개념 및 동작과정
1. System.out.println 문제점 로그 라이브러리는 로그 레벨을 설정할 수 있기 때문에 특정 레벨 이상의 로그만 출력할 수 있지만 출력문은 레벨 상관없이 출력됩니다. 로그 라이브러리는 파일이나 외부 서버에 저장할 수 있는 반면 출력문은 이러한 기록을 파일로 기록하기 어렵습니다. 로그 라이브러리를 사용하는 것보다 출력문을 사용하면 성능 저하가 발생할 수 있습니다. 개발 중에 추가한 출력문을 주석 처리하거나 제거해야 할 수 있습니다. 2. Logging 라이브러리 로깅 라이브러리는 애플리케이션에서 발생하는 이벤트를 기록하고 추적할 수 있는 도구입니다. 로깅 라이브러리를 활용하여 디버깅 메시지를 레벨로 구분할 수 있으며, 레벨에 따라 로깅 메시지의 출력 유무를 결정할 수 있습니다. 대표적 로깅 라..
2023.04.23 -
다형성(Polymorphism)
다형성이란 무엇인가? 다형성은 역할과 구현이라는 개념을 분리한 기술이라고 생각합니다. 역할은 어떤 기능들을 수행할 수 있는 모음이고 실체가 존재하지 않는 개념입니다. 구현은 역할안에 있는 기능들을 실제로 수행하는 대상이라고 표현할 수 있습니다. 구현은 역할과는 다르게 실체를 가지고 있는 대상입니다. 즉, 정리하면 다음과 같습니다. 다형성 : 역하과 구현 개념을 분리한 기술 역할 : 어떤 기능들을 수행할 수 있는 모음 구현 : 역할안에 있는 기능들을 실제로 수행하는 대상 다형성 비유 다형성을 비유하면 자동차로 비유할 수 있습니다. 운전자가 자동차를 운전할 때 소나타를 운전하다가 아반떼로 바꾸어 운전해도 큰 어려움이 없습니다. 왜냐하면 자동차의 기능인 엑셀, 브레이크와 같은 표준 기능들이 소나타나 아반떼가 ..
2023.04.23 -
AWS EC2 인스턴스에 서버 배포
1. EC2 인스턴스 생성 1.1 아마존 계정에 접속하여 서비스 -> EC2 -> 인스턴스 시작을 클릭합니다. 1.2 인스턴스를 생성하기 위해 필요한 정보를 작성하고 선택합니다. 키 페어를 사용하여 SSL로 로컬 환경에서 원격 접속할 수 있습니다. 키 페어가 없는 경우 새 키 페어 생성 링크를 클릭하여 다음과 같이 생성합니다. Linux, Mac OS 같은 경우 *.pem 확장자를 가진 키 페어 파일을 이용하여 SSL 접속을 할 수 있고 윈도우 같은 경우 putty를 사용하는 경우 *.ppk 확장자를 선택하면 됩니다. 단, 윈도우에서 git bash를 사용한다면 ppk가 아닌 pem 확장자 키 페어 파일을 이용하여 접속할 수 있습니다. 2. EC2 인스턴스에 설정된 보안 그룹의 인바운드 규칙 설정 기본적..
2023.04.16 -
객체지향 언어 특징 (캡슐화, 상속, 추상화, 다형성)
목차 OOP 특징 캡슐화(Encapsulation) 상속(Inheritance) 추상화(Abstraction) 다형성(Polymorphism) OOP(Object-Oriented-Programming) 특징 캡슐화(Encapsulation) 상속(Inheritance) 추상화(Abstraction) 다형성(Polymorphism) 캡슐화(Encapsulation) 캡슐화는 외부의 접근으로부터 클래스의 자세한 정보인 필드 멤버와 메소드를 숨기는 방법입니다. 그리고 캡슐화가 적용된 클래스는 오직 public 인터페이스를 통하여 인터페이스의 메소드(메시지)를 노출합니다. 상속(Inheritance) 상속은 한 클래스가 또 다른 클래스의 필드 멤버와 메소드 기능들을 사용할 수 있도록 하는 것입니다. 자바에서 상..
2023.03.29 -
JVM(Java Virtual Machine) 실행원리와 구조
목차 JVM 개념 클래스로더 서브시스템(ClassLoader Subsystem) 로딩(Loading) 링킹(Linking) 검증(Verification) 준비(Preparation) 해석(Resolution) 초기화(Initialization) 부트스트랩 클래스 로더(Bootstrap class loader) 확장 클래스 로더(Extension class loader) 애플리케이션 클래스 로더(Application class loader) JVM Memory 메소드 영역(Method area) 힙 영역(Heap area) 스택 영역(Stack area) PC 레지스터(PC Registers) 네이티브 메소드 스택(Native method stacks) 실행 엔진(Execution Engine) 인터프리터..
2023.03.27