본문 바로가기

IT 공부/자바와 웹 애플리케이션37

[인텔리제이] - 자바 웹 프로젝트 설정에 대한 각 요소의 의미 1. New Project - Generators : 프로젝트의 종류와 성격에 따라 인텔리제이에서 메이븐이나 그레이들의 기본 폴더 구조에서 시작해 해당 프로젝트 성격에 적합한 폴더 구조, 필요한 설정 파일, 필요한 라이브러리 및 프레임워크 설정 등을 추가해줄 수 있다. 예를 들어, 자바 웹 애플리케이션은 JavaEE(JakartaEE) 표준 기술을 사용하므로, Jakarta EE generator 생성기를 사용하면 resources, webapp, WEB-INF 같은 것이 추가되고, 빌드툴의 설정도 알맞게 추가된다. 그러나 단지 "추가"될 뿐이다. 근본은 메이븐, 그레이들의 프로젝트 생성 구조를 따른다. - Template : 추가적인 설정을 통해 구체적으로 어떤 서버 사이드 프로젝트를 구성하는지 보다 .. 2024. 1. 1.
[자바] - unnamed package의 문제점과 JDK의 클래스패스 설정 방법들 1. 패키지는 코드로 명시해야 한다. 자바의 패키지(package)는 단순히 클래스(.class) 파일들을 디렉토리에 배치한 개념이 아니라 자바 컴파일러나 JVM이 특정 클래스의 위치를 정확하게 식별하게 도와주는 실질적인 "코드"다. 따라서 패키지 선언문이 없는 자바 소스코드를 컴파일한 후에, 특정 디렉토리 내부에 배치해도 해당 디렉토리는 클래스 파일의 패키지가 될 수 없다. JVM은 클래스를 찾지 못한다(No Class Def Found Error)고 내뱉는다. 패키지 없이 컴파일한 소스코드는 나중에 디렉토리에 배치해도 그 경로가 패키지가 될 수 없다. 패키지는 반드시 코드로 명시되어야 한다. 예를 들어, 아래와 같은 자바 소스코드가 있다. 패키지 선언문이 없다. public class Hello { .. 2023. 12. 31.
[자바] - 자바 컴파일러가 인식하는 소스 코드의 기본 인코딩 설정 1. 소스코드도 문자열에 불과하다! 소스 코드의 본질은 문자열이다. 대부분 이클립스나 비주얼 스튜디오 코드, 인텔리제이와 같은 IDE 개발 환경에서 개발하기 때문에 간과하기 쉽다. 소스코드를 작성하고 단축키를 누르면 즉시 빌드되고 실행되기 때문이다. 마치 소스코드가 그 자체로 실행되는 느낌이다. 그러나 소스코드 데이터의 본질은 "문자"다. 컴퓨터가 아니라 인간이 읽고 이해하는 파일이다. 따라서 사실 메모장에서 코드를 작성해도 아무 문제가 없다. (물론 정말로 메모장으로 코딩하는 사람은 없을 것이다.... ;) 그런데 문자열을 다루는 순간, 우리는 필연적으로 인코딩 문제를 신경쓸 수 밖에 없다.(링크) 유니코드인지 아닌지, 문자셋이 유니코드라면 그것을 어떻게 구체적으로 인코딩 했는지에 따라 깨짐 문제가 발.. 2023. 12. 31.
[자바] - Java 플랫폼을 둘러싼 모든 개념들 총정리 Q: JDK란? Java Development Kit 의 약자로, 자바로 개발을 하는 사람들을 위한 모든 필요한 소프트웨어 묶음을 말한다. 따라서 자바 실행 프로그램(java.exe)뿐만 아니라 컴파일러(javac.exe), jar.exe, javadoc.exe, 표준 라이브러리 코드들을 전부 포함한다. Q. JDK의 버전 숫자에 대해서 오라클(oracle) 회사에서 지속적으로 자바 문법과 표준 라이브러리에 대한 명세를 업데이트하고, 업데이트 숫자를 붙여 각 버전을 구분한다. 이걸 통틀어서 Java 13, Java 21, ... 이런 식으로 부른다. 특이한 점은 Java 8 이하의 버전들은 Java 1.8, Java 1.6, .. 이런 식으로 1.x 형태로 표기하는데, 이는 초기 자바 진영이 메이저 업데.. 2023. 12. 31.