• JVM 밑바닥까지 파헤치기

    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..

  • Boolean true ==

    Boolean true == "true"가 가능할까요?

    최근 제출을 목적으로 풀스택으로 웹 시스템을 개발했다. 그렇게 제출 2시간 전, 마지막 테스트를 하고 있던 와중, 어마어마한(?) 버그를 발견하게 되었다...... 바로 체크박스 check / uncheck가 ajax로 유지되지 않는다는 것...!원래는 잘 동작했던 기능이었기에, 도대체 뭐가 문제지 하고 식은땀이 주르르르르르르륵 났던 것 같다...결과적으론 버그를 찾아서 해결했지만,,정말 식겁한 순간이었던 것 같다...ㅠㅠㅠㅠㅠ 다시는 이런 문제를 일으키지 않기 위해 블로그에 가볍게 정리해보려고 한다. 1. 배경구현하고자한 내용을 간단히 설명하자면, 위 사진처럼 체크 박스 이벤트에 의해 DB에 체크여부를 저장하는 로직을 구현해야 했었다.체크를 클릭하면, DB에 is_checked 칼럼이 true, unc..

  • [Gasip] queryDSL을 활용하여 교수 평균 평점 구하기

    [Gasip] queryDSL을 활용하여 교수 평균 평점 구하기

    배경저희 비즈니스 로직을 살펴보면, 교수님에 대한 평점을 CRUD 할 수 있는 요구사항이 있습니다.(Delete 기능은 없지만,,,일단.. 예...) 계정 당 최초 1회에 한해 교수님들에 대한 평점을 1점~5점 이내로 등록할 수 있는데요.쉽게 바꿔 말하자면 각 교수님들에 대한 평점 등록을 한 번 밖에 못한다는 뜻입니다. 또한 평점을 확인하러 특정 교수님의 페이지에 접속한다면, (당연히) 교수님의 평균 평점을 확인할 수 있습니다. 이런 요구사항을 종합해본다면,한 계정 당 특정 교수님의 평점은 한번만 등록할 수 있다.특정 교수 페이지에서 각 사용자들이 평가한 평균 평점을 확인할 수 있다.사용자는 기존에 등록한 평점을 수정할 수 있다.정도입니다. 사실 이런 요구사항을 선정하는데까지 여러 논의가 있었는데요. 논..