Development/Java

JVM 밑바닥까지 파헤치기
JVM(Java Virtual Machine) 완벽 정리 🚀 1. JVM이란? JVM(Java Virtual Machine)은 자바 애플리케이션을 실행하기 위한 가상 머신입니다.개발자가 작성한 자바 코드는 바이트코드(Bytecode, .class 파일)로 변환된 후, JVM이 이를 실행합니다.JVM의 가장 큰 장점 중 하나는 운영체제(OS)에 종속되지 않는다는 것입니다.이는 자바의 “Write Once, Run Anywhere” 원칙을 가능하게 합니다. 💡 즉, 자바 프로그램이 어떤 운영체제에서든 실행될 수 있도록 해주는 역할을 합니다.2. JVM의 주요 기능 ① 바이트코드 실행 • 자바 컴파일러(javac)가 .java 파일을 .class 바이트코드 파일로 변환. • 클래스 로더에 의해 전달된 바이..

자바 컴파일 과정
자바(Java)의 컴파일 과정은 크게 4단계로 진행됩니다. 먼저 짚고 넘어가야할 것은, 자바는 JVM을 통해 OS에 독립적인 특징을 갖고 있다는 것입니다. 이는 즉 자바 코드가 컴파일되면 바로 CPU에서 읽히는 기계어로 변환되는 것이 아닌, 중간 역할을 하는 JVM을 거쳐야한다는 뜻이기도 합니다.1. 개발자의 자바 소스 코드 작성 (.java 파일)자바 프로그램은 .java 확장자를 가진 소스 코드 파일로 작성됩니다.흔히 우리가 작성하는 자바 코드를 의미합니다.public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); }} 2. 자바 컴파일러(Java Co..
자바는 왜 객체지향 언어인가요?
자바는 캡슐화,상속,추상화,다형성의 특징을 갖고 있기 때문입니다. 흔히 말하는 "캡상추다" 가 맞습니다. 1. 캡슐화(Encapsulation)객체 내부의 데이터(속성)는 private으로 숨기고, getter/setter 메서드를 통해 접근할 수 있습니다.이를 통해 데이터 보호와 정보 은닉이 가능하며, 유지보수가 쉬워집니다.public class Person { private String name; // 외부에서 직접 접근 불가 public String getName() { // 캡슐화를 통해 접근 return name; } public void setName(String name) { this.name = name; }} 2. 상속(Inherit..

객체지향 설계원칙 : SOLID 란?
SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙이다.각각 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존 역전 원칙)으로 이루어져 있다. SOLID를 지킨다면 프로그램이 복잡해져도 변경에 용이하고 유지보수와 확장이 쉬운 소프트웨어를 개발할 수 있을 것이다. 1. SRP(단일 책임 원칙, Single Responsibility Principle)정의(what?)하나의 클래스는 하나의 책임을 가져야한다는 뜻이다.클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하기 위해 집중되어야 한다.왜 써?(why?)책임의 영역이 확실해지기 때문에 어떤 클래스의 책임이 변경되어야한다해도 다른 클래스의 책임에는 영향을 미치..
객체 지향 프로그래밍이란?? 객체 지향의 4가지 특징 Feat.캡상추다
면접에서 똑부러지게 말하기 위해 돌아왔다. 기본 중의 기본으로! 1. 객체 지향 프로그래밍 정의(What?) 객체 지향 프로그래밍은 기존의 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 상태와 행위를 가진 객체로 파악하는 것이다. 이러한 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 확인하여 프로그램을 구성하는 것을 말한다. 즉, 객체를 통해 "누가 어떤 일을 할 것인가?"를 정의하는 것이 핵심이다. 특징으로는 캡슐화, 상속, 다형성, 추상화 등이 있다. 왜 써?(Why?) 객체의 역할에 의한 상호작용으로 프로그램이 구성되므로, 해당 역할을 수행할 수 있는 어떤 객체든 대체 가능하다. 즉 유지보수성, 확장성, 재사용성이 뛰어남 안쓰면 뭐가 불편해?(Why Not?) 전체 시..

boolean 바인딩 에러.. boolean과 Boolean의 차이
@AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @Builder public class SaleRegistRequest { private User seller; private Long orderHistoryId; private DealState dealState; private int discountRate; private int sellPrice; private int actualProfit; private int catchPrice; @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") private LocalDateTime endDate; private String in..

KakaoAPI를 활용해 위치기반 장소 검색 Java 애플리케이션을 개발해보자
Java만 이용하여 간단한 애플리케이션을 만들어보고자 한다. 과제 내용은 아래와 같다. 이 Java 어플리케이션은 입력에 기반하여 특정 위치 내의 장소를 검색 가능. 자신의 위치를 기반으로 특정위치에 있는 장소를 검색하여 출력 Kakao 로컬 REST API중 키워드로 장소 검색하기, 카테고리로 장소 검색하기 API를 활용할 것 작업 옵션 단계 1: 카카오 API 키 획득 아래 포스팅을 참고할 것. KakaoAPI를 활용해 책을 검색하는 JAVA 애플리케이션을 만들어보자 과제를 받았다. (으어어ㅓㅓㅇ어어ㅓ) 일단 https://developers.kakao.com/ 여기서 "내 애플리케이션"에서 app을 생성한 뒤, API KEY를 받아두었다. Kakao Developers 카카오 API를 활용하여 다양..

KakaoAPI를 활용해 책을 검색하는 JAVA 애플리케이션을 만들어보자
과제를 받았다. (으어어ㅓㅓㅇ어어ㅓ) 일단 https://developers.kakao.com/ 여기서 "내 애플리케이션"에서 app을 생성한 뒤, API KEY를 받아두었다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 키를 발급받는 자세한 방법은 아래 포스팅을 참고하면 된다. https://kadosholy.tistory.com/25 카카오 API 키 발급받기 (kakao API Key) 카카오 API Key 발급받기 (kakao API Key) 카카오에서 제공하는 API를 이용하려면 먼저 카카오에서 발급하는 API Key를 발급받아야 합..