본문 바로가기

분류 전체보기254

[Java] - 자바의 Error와 Exception 이해하기 1. 프로그램의 오류 1-1. 오류가 발생했다는 것은 무슨 의미일까? (1) 프로그램을 실행하다 보면 어떤 원인 때문에 프로그램이 비정상적인 동작을 일으켜 프로그램이 종료되는 것을 볼 수 있을 것이다. 이것을 프로그램이 실행 도중 오류가 발생했다고 말한다. 이러한 오류의 종류로는 크게 Error(에러)와 Exception(예외)가 존재한다. (2) 우선 에러에 대해 알아보자. 2. Error 2-1. Error의 정의 (1) 위에서 에러에 대한 정의를 확인했다. 이러한 프로그램의 에러로는 크게 3가지 종류가 있다. - 컴파일 에러(Compile Error) : 문법 오류 등 컴파일 타임에서 발생하는 에러 - 런타임 에러(Runtime Error) : 런타임(실행) 환경에서 발생하는 에러 - 논리적 에러(.. 2023. 11. 6.
웹 서버(Web Server), 웹 애플리케이션 서버(Web Application Server), 자바 서블릿(Java Servlet) 정리 웹 서버와 웹 애플리케이션 서버(WAS)의 차이점, 특징 자바 서블릿(Java Servlet)에 대해 정리해 보고자 한다. 1. 웹 서버와 웹 애플리케이션 서버 1-1. 개요 (1) 웹 브라우저에서 특정 URL로 접속하면 인터넷을 통해 해당 서버에 요청을 보내어 관련된 서버가 요청에 맞는 응답을 다시 웹 브라우저로 전송한다. (2) 이때 클라이언트 서버 간 통신에는 HTTP이 사용된다. 1-2. 웹 생태계에서의 모든 동작이 HTTP 기반 위에서 동작한다. HTML, 텍스트 문서, 이미지, 음성, 영상, 파일, JSON, XML(API), 서버 간 데이터를 주고받을 때도 대부분 HTTP를 사용한다. 2. 웹 서버(Web Server) 2-1. 웹 서버(Web Server)의 정의 (1) 웹 서버란 HTTP.. 2023. 11. 2.
[Java 기술면접] - 신입 Java 개발자 기술 면접 정리 (1) Java / Spring 백엔드 개발 기술면접을 준비하기 위해 관련된 내용을 정리한 글입니다. 1. ~.java 파일의 컴파일 및 실행 과정 (1) 자바 컴파일러(javac)가 자바 소스 코드(.java)를 읽어 들여 자바 바이트 코드(.class)로 변환한다. (2) Class loader를 통해 클래스 파일(.class)들을 JVM으로 로딩시킨다. (3) 로딩된 클래스 파일들은 Runtime Data Area이라는 JVM 메모리 영역에 배치된다. (4) Runtime Data Area에서 다양한 작업이 수행된다. 이러한 실행 과정 속에서 JVM은 필요에 따라 Thread Synchronization, Gabage collection과 같은 관리 작업을 수행한다. (5) 마자막으로 바이트 코드들은 Ex.. 2023. 10. 25.
[Java] - 자바 가상 머신, JVM(Java Virtual Machine) Java, Kotlin 기반의 애플리케이션이 실행된다면 반드시 JVM 위에서 실행된다. 이러한 자바 가상 머신이 어떻게 동작하는지, 어떤 구성 요소로 이루어졌는지 정리해 보려고 한다. 1. JVM(Java Virtual Machine), 자바 가상 머신 1-1. JVM이란? - 자바 가상 머신은 Java로 개발한 애플리케이션을 컴파일하여 생성되는 바이트 코드를 실행시키기 위한 가상 머신이다. 이러한 JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들인 후 Java API와 함께 실행하는 역할을 수행한다. Java와 운영체제 사이에서 중계자 역할을 수행함에 따라 운영체제와 프로세서 환경에 독립적으로 자바 애플리케이션이 실행될 수 있도록 해 준다. 1-2. JVM의 여러 가지 특징 (1) 플랫폼.. 2023. 10. 19.
[Java] - 자바 빌드 도구 Maven, Gradle 정리 스프링 프로젝트를 진행함에 따라, 자바에서 많이 사용되고 있는 빌드 도구(Build tool)인 Gradle과 Maven에 대해 정리하고자 한다. 1. 빌드 도구(Build tool)란 무엇일까? 1-1. 빌드(Build) (1) 빌드 과정은 작성된 소스코드를 컴퓨터에서 실행할 수 있는 독립적인 결과물의 형태로 변환하는 과정을 의미한다. (2) 작성된 소스코드(.java), 프로젝트에서 사용된 각각의 파일과 리소스를 자바 가상 머신(Java Virtual Machine)이나 Tomcat같은 WAS(Web Application Server)가 인식할 수 있도록 패키징하는 과정 및 결과물이라고 볼 수 있겠다. (3) 빌드 과정에서 발생하는 작업 - 종속성 다운로드, 소스 코드를 바이너리 코드로 컴파일, 바이.. 2023. 10. 19.
[MySQL] - MySQL이란?, 관계형 데이터베이스의 정의와 여러 가지 특징, 트랜잭션 정리 1. MySQL 1-1. MySQL이란? (1) MySQL은 전세계적으로 많이 사용되는 오픈소스 기반 관계형 데이터베이스를 말하며 다중 스레드와 사용자 구조 질의어(SQL, Structured Query Language) 형식의 데이터베이스 관리 시스템으로 현재는 오라클(Oracle) 재단이 MySQL을 관리 및 유지보수하고 있다. (2) 이러한 MySQL은 대규모의 웹 애플리케이션, 서버 개발에서 많이 사용되며 대규모의 웹 애플리케이션에서 발생하는 많은 데이터들을 구조화하고 관리할 수 있다. (3) 관계형 데이터베이스인 특징에 따라 데이터들을 테이블 형태로 관리하며 컬럼(Column)과 로우(Row) 형태로 데이터들을 관리하고 저장할 수 있다. 컬럼에는 데이터에 대한 속성과 테이블의 구조를 정의하고, .. 2023. 10. 18.