제이제이
article thumbnail
인텔리제이 break 포인터 + 디버깅
프로그래밍 언어/IDE 2023. 6. 6. 01:29

안녕하세요. 이번에는 흔히 사용하는 IDE 중 하나인 인텔리제이의 디버깅과 BreakPoint 사용에 대해서 알아봅시다. 🤔 디버깅이란? 디버깅이란 보통 프로그램 내, 오작동 되는 코드를 찾아 고치는 것을 의미합니다. 간단한 스프링 코드를 디버깅을 통해 실행해 봅시다. 🤔 BreakPoint란? 브레이크포인트는 디버깅을 목적으로 실행중인 디버깅 대상 프로세스를 의도적으로 멈추게 하는 장소를 가리킵니다. 이전 살펴본 동일한 spring 코드에 대해서 브레이킹 포인트를 설정하여 살펴봅시다. 👩🏻‍🏫 설명 브레이킹 포인트를 한 결과를 살펴보면 다음과 같습니다. 👩🏻‍🏫 설명 Resume = 다음 break Point로 이동하는 것을 의미합니다. Step Over = 현재 break된 파일의 다음 라인 이동 S..

article thumbnail
JAVA의 빌드툴

안녕하세요. 이번에는 Java의 빌드 툴에 대해서 알아봅시다. 🤔 빌드 툴이란?(Build Tool) 빌드에서는 컴파일, 테스트, 배포 등의 과정이 포함될 수 있고, 빌드 과정을 도와주는 도구를 빌드 툴이라고 합니다. 대표적인 Java의 빌드 툴로는 Ant, Maven, Gradle 등이 있습니다. 🔎 Ant(Apache Ant) 🔎 Maven(Apache Maven) 🔎 Gradle 📒 Reference JAVA의 빌드툴에 대해 알아보자 토이 프로젝트 진행과 TDD에 대해 공부하기 위해 초기 프로젝트 세팅을 해야 했고, 그 과정 가운데 JAVA빌드 툴에 대해 알아야겠다는 생각이 들어 공부를 시작하게 되었다. 기존 알고 있던 빌드 툴 doosicee.tistory.com

article thumbnail
빌드와 컴파일의 차이

안녕하세요. 이번 포스팅에서는 빌드와 컴파일 간의 차이에 대해서 알아보겠습니다. 🤔 빌드란? 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 결과를 의미합니다. 예시 Java 프로젝트 - A.java 파일과 여러가지 정적 파일들이 담겨져 있는 resource가 존재함 IF) 빌드를 하게 될 경우 소스코드를 컴파일해서 .class 파일로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF들을 하나로 압축하는 과정을 하게 됨 빌드 툴(Build Tool) = 빌드 과정을 도와주는 도구 → 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일 👨🏻‍🏫 추가설명 - 빌드 툴(Build Tool) 빌드에서는 컴파일,..

article thumbnail
JVM 동작 방식

안녕하세요. 이번에는 간단하게 JVM의 동작방식에 대해서 알아보겠습니다. 💁🏻‍♂️ JVM 동작방식 JVM은 클래스 로더(Class Loader) + 런타임 데이터 영역 (Runtime Data) + 실행 엔진(Execution Engine), 가비지 컬렉터(GarBage Collector)로 구성이 되어 있습니다. 👉🏻 런타임 데이터 영역(Runtime Data Area) 런타임 데이터 영역(Runtime Data Area)는 JVM이 프로그램을 수행하기 위해 OS로부터 할당받는 메모리영역입니다. WAS의 성능에 문제가 발생했을 때, 대부분 이 영역들이 원인이 됩니다.(Memory Leak 혹은 GC) +) 👨🏻‍🏫 추가 설명 (왜 Web Application Server)에 성능 문제가 발생했을때, ..

article thumbnail
1. Java 고급 문법(1) - 자바의 메모리 모델과 Object 클래스

본 내용은 "윤성우의 열혈 Java 프로그래밍"를 참고로 정리한 내용입니다. 1. 자바 가상머신의 메모리 모델 자바 가상 머신의 메모리 관리 방식을 가리켜 ‘자바 메모리 모델’이라고 하는데,이는 자바의 전반적인 이해에서 매우 중요한 부분입니다. 가상 머신은 운영체제 위에서 동작합니다. 자바 가상머신은 운영체제 위에서 실행되는 하나의 프로그램입니다. 그리고 자바 프로그램은 자바 가상머신 위에서 실행되는 프로그램입니다. ❓ 그렇다면 가상머신의 실행에 필요한 메모리는 어떻게 제공되는 것일까요? 프로그램의 실행에 필요한 메모리 공간을 가리켜 ‘메인 메모리(Main Memory)’라 하며 이는 물리적으로 램(RAM)을 의미합니다. RAM의 효율적인 사용을 위해 윈도우, 리눅스와 같은 운영체제가 메모리를 관리합니다..

article thumbnail
14. Java 객체지향 문법(14) - 예외처리

본 내용은 "윤성우의 열혈 Java 프로그래밍"를 참고로 정리한 내용입니다. 1. 예외처리 ❓ 예외란? 🔥 프로그램이 실행 중에 발생하는 정상적이지 않은 상황(예외적인 상황)을 의미합니다. 🚨 그렇다면 오류는? 💡 오류는 대다수의 문법적인 실수를 의미합니다. 따라서 오류는 컴파일 과정에서 나타나게 됩니다. 예외를 알아보기 위해 다음의 코드를 살펴봅시다. import java.util.Scanner; public class ExceptionCase{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print("a/b...a?"); //int형 정수 입력 int n1 = sc.nextInt(); Sy..

article thumbnail
13. Java 객체지향 문법(13) - 인터페이스와 추상 메소드

인터페이스의 사용과 그 의미 🤔 인터페이스란? 인터페이스는 구현하는(상속받는)클래스의 "기본 설계도"의 역할을 합니다. 인터페이스 안에는 상수와 추상 메소드로 이루어져 있습니다. 인터페이스의 형태 interface Printable{ //추상 메소드 public void print(String doc); } 인터페이스는 선언 시에 interface라는 키워드를 붙여 사용합니다. 또한 인터페이스 안에 있는 추상 메소드는 메소드의 몸체가 비어 있으며 세미콜론을 위와 같이 붙여 선언합니다. 인터페이스는 다른 클래스를 통해 구현됩니다. 이와 관련하여 다음의 코드를 살펴봅시다. 💻 예시 코드 class Printer implements Printable{ //Printable 인터페이스의 print 메소드를 구현..

article thumbnail
12. Java 객체지향 문법(12) - 상속의 목적

본 내용은 "윤성우의 열혈 Java 프로그래밍"를 참고로 정리한 내용입니다. 1. 상속을 적용하여 도움이 되는 상황 이번 포스팅에서는 간단하게 상속을 적용하여 보다 좋은 코드를 만드는 상황에 대해서 살펴봅시다. ❓ 상속이란? 🔥 연관되어 있는 클래스에 대해서 공통적인 규약을 정해 놓는 것을 의미합니다. 스마트폰에 저장된 전화번호를 출력하는 시스템 프로그램을 통해 스마트폰에 있는 전화번호 중 다음과 같이 주변 지인들을 구별해야 하는 상황을 가정하고 코드를 살펴보겠습니다. 대학 동창 친구들 = 이름, 전공, 개인 전화번호를 구별하여 저장함 직장 동료분들 = 이름, 부서, 개인 전화번호를 구별하여 저장함 이를 코드로 나타내면 다음과 같습니다. //대학교 동창 친구들 class UnivFreind{ privat..