자바 개념 면접 복기 및 복습
·
🗄️ Backend/Java
1. 객체지향 언어란 무엇이며, 등장한 이유는 무엇인가요?정의:객체지향 언어는 실 세계의 사물을 추상화하여, 멤버변수(데이터)와 메서드(동작)를 정의하고, 이를 객체로 표현하는 데서 출발합니다.등장 이유:복잡한 프로그램 구조를 단순화하고 유지보수를 용이하게 하기 위해 등장했습니다. 기능과 데이터를 객체로 묶어 프로그램에 반영함으로써 순차적 실행이 아닌 객체 간 상호작용을 통해 동작합니다.장점:코드 재사용성: 기존 코드를 활용하여 새로운 코드를 쉽게 작성 가능.코드 관리 용이성: 적은 노력으로 코드 수정 및 변경 가능.데이터 보호: 제어자와 메서드를 통해 데이터를 보호하고, 중복 제거로 코드 불일치 방지.2. 자바의 데이터 타입: 원시 타입과 참조 타입원시 타입(Primitive Type):변수에 값 자체..
GCP에서 Oracle DB 생성 및 연결 가이드
·
🗄️ Backend/GCP
이 가이드는 Google Cloud Platform(GCP)에서 Oracle 11g Database를 설정하고 외부에서 연결하는 과정을 정리한 문서입니다.특히 발생했던 문제들과 해결 방법을 포함하여, GCP 환경에서 Oracle Database를 처음 설정하거나 비슷한 문제를 겪고 있는 개발자들에게 실질적인 도움을 제공합니다.1. GCP에서 Oracle DB 생성1.1. GCP 프로젝트 및 API 활성화GCP Console에 접속하여 새 프로젝트를 생성합니다.Compute Engine API를 활성화하여 VM 인스턴스를 생성할 수 있도록 설정합니다.1.2. VM 인스턴스 생성VM 생성이름: oracle-db (저는 기본 생성된 이름으로 진행했습니다.)머신 유형: e2-medium (2vCPU, 4GB 메..
Spring Boot 기초: 웹 애플리케이션 설정
·
🗄️ Backend/Spring
Spring Boot는 Java 기반의 웹 애플리케이션을 빠르고 간편하게 개발할 수 있는 프레임워크입니다. 이번 포스트에서는 Spring Boot를 사용하여 간단한 웹 애플리케이션을 설정하고 실행하는 방법에 대해 상세히 설명합니다. 이 예제에서는 WebConfig, TestVO, HomeController 등을 활용하여 Spring Boot 프로젝트를 구성하고, 타임리프(Thymeleaf)를 사용한 템플릿 렌더링까지 다룹니다.1. Spring Boot 프로젝트 설정WebConfig.java - 스프링 설정 파일WebConfig.java는 Spring의 설정 파일로, 스프링 빈을 등록하고 프로퍼티 값을 주입받을 수 있는 역할을 합니다. 또한, @Value 애노테이션을 사용하여 application.prop..
HikariCP, MyBatis를 활용한 데이터베이스 연결 풀 설정 및 최적화
·
🗄️ Backend/Spring
Spring Framework는 Java 애플리케이션에서 데이터베이스와의 원활한 연결을 관리하기 위해 다양한 방법을 제공합니다.그 중에서도 HikariCP는 고성능 JDBC 커넥션 풀 라이브러리로 유명하며,MyBatis는 SQL 매퍼 프레임워크로 SQL 처리 및 객체 매핑을 간편하게 할 수 있게 돕습니다.이번 포스트에서는 Spring 환경에서 HikariCP와 MyBatis를 설정하고, 효율적으로 데이터베이스 연결을 관리하는 방법에 대해 설명합니다.1. HikariCP 설정 (고성능 JDBC 커넥션 풀)HikariCP란?HikariCP는 Java 애플리케이션에서 데이터베이스와의 연결을 효율적으로 관리하는 커넥션 풀 라이브러리입니다. 성능과 경량성에서 우수한 평가를 받으며, 고성능 애플리케이션에서 필수적인..
스프링 프레임워크에서 Redirect, Request, Response 처리 및 서비스 계층 구현
·
🗄️ Backend/Spring
Spring Framework는 다양한 웹 애플리케이션 개발을 지원하는 강력한 도구입니다.특히, @Controller, @Service, @Repository 등의 어노테이션을 사용하여 웹 애플리케이션의 각 계층을 명확하게 구분할 수 있습니다.이 글에서는 Spring의 Redirect, Request, Response 처리 방법과 서비스 계층 구현에 대해 깊이 있게 다뤄보고, 이를 실제 예시와 함께 설명합니다.  1. Spring에서 Controller 및 요청 처리Spring MVC에서는 @Controller 어노테이션을 사용하여 웹 애플리케이션의 요청을 처리하는 컨트롤러 클래스를 정의합니다. 이 클래스는 클라이언트의 요청을 받고, 적절한 서비스 로직을 처리한 후 뷰(View)로 데이터를 전달하는 역할..
스프링 프레임워크(Spring Framework) 기본 개념과 활용
·
🗄️ Backend/Spring
스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 애플리케이션 프레임워크로,주로 엔터프라이즈 애플리케이션 개발에 사용됩니다.스프링은 개발자들이 복잡한 애플리케이션을 효율적으로 개발할 수 있도록 다양한 기능과 지원을 제공합니다.특히, 의존성 주입(DI), 관점 지향 프로그래밍(AOP), MVC 패턴 등을 통해애플리케이션의 유연성, 테스트 용이성, 유지보수성을 높여줍니다.이번 포스팅에서는 스프링 프레임워크의 주요 개념과 그 활용 방법을 상세히 설명합니다.스프링 프레임워크의 주요 기능DI(Dependency Injection, 의존성 주입)DI는 객체 간의 의존성을 외부에서 주입하는 방식으로, 코드의 결합도를 낮추고 유연성과 테스트 용이성을 향상시킵니다.예를 들어, 하나의 객체가 다른 객..
JSP와 MyBatis
·
🗄️ Backend/JSP
JDBC의 불편함JDBC(Java Database Connectivity)는 데이터베이스와 자바 애플리케이션 간의 상호작용을 가능하게 해주는 API입니다. 하지만, JDBC를 사용할 때 여러 불편함이 존재합니다:저수준 API: JDBC는 프로그래머가 낮은 수준부터 ORM(Object-Relational Mapping)을 작성해야 하는 장점이 있지만, 그로 인해 많은 코드가 반복되는 단점이 있습니다.반복적인 코드: 데이터베이스 연결, 쿼리 실행, 결과 처리 등에서 많은 중복 코드가 발생하여 유지보수가 어렵습니다.Persistence Framework란?Persistence Framework는 애플리케이션 데이터와 데이터 저장소 간의 상호작용을 관리하는 소프트웨어 라이브러리입니다. 이 프레임워크는 데이터베이..
JSP와 MVC2 패턴
·
🗄️ Backend/JSP
MVC2 패턴 개요MVC2 패턴은 Model-View-Controller 아키텍처를 기반으로 한 웹 애플리케이션 구조로, 클라이언트의 요청을 효율적으로 처리하고 사용자에게 데이터를 표시하기 위해 데이터와 비즈니스 로직, 사용자 인터페이스를 분리합니다. 이 구조는 웹 애플리케이션의 유지보수성과 확장성을 높여줍니다.각 구성 요소의 역할M (Model): 데이터와 비즈니스 로직을 관리하는 역할입니다. 데이터베이스와의 상호작용, 데이터를 처리 및 가공하여 비즈니스 로직을 수행하는 책임이 있습니다. Model은 주로 DAO(Data Access Object)와 DTO(Data Transfer Object)로 구성됩니다.V (View): 사용자에게 데이터를 보여주는 역할을 합니다. 모델에서 가공된 데이터를 사용자에..
JSP와 MVC 패턴: DAO/DTO, 커넥션 풀, EL, JSTL
·
🗄️ Backend/JSP
PreparedStatement(pstmt) 객체Statement 객체와 PreparedStatement 객체의 차이점웹 애플리케이션에서 SQL 쿼리를 처리할 때, Statement 객체와 PreparedStatement 객체를 사용할 수 있습니다.Statement 객체: SQL 쿼리를 문자열로 작성하고 직접 실행합니다. 그러나 복잡한 쿼리나 동적인 값이 많을 경우 코드가 복잡해지고 오류 발생 가능성이 높아집니다.PreparedStatement 객체: SQL 쿼리를 미리 컴파일하여 성능을 향상시키고, 파라미터 설정 시 '?'를 사용하여 간편하게 값을 지정할 수 있습니다. 이는 코드의 가독성을 높이고, SQL 인젝션 공격을 예방하는 데 도움이 됩니다.PreparedStatement 실행 순서드라이버 로딩C..
쿠키(Cookie)와 세션(Session) 완벽 가이드
·
🗄️ Backend/JSP
#쿠키(Cookie)와 세션(Session)웹 애플리케이션을 개발하면서 쿠키와 세션은 필수적으로 이해해야 하는 개념입니다. 이 글에서는 쿠키와 세션의 개념, 특징, 사용 방법, 그리고 두 기술 간의 차이점을 자세히 설명하겠습니다.쿠키(Cookie)1. 개요쿠키는 웹 브라우저와 서버 간의 통신에서 특정 정보를 지속적으로 유지하기 위한 데이터 저장 방식입니다. HTTP 프로토콜은 비연결성(stateless) 프로토콜로, 각 요청이 끝난 후 클라이언트와의 연결을 종료합니다. 따라서 서버는 클라이언트의 상태를 유지할 방법이 필요하고, 이때 쿠키가 사용됩니다.2. 특징클라이언트 측 저장: 쿠키는 서버가 생성하여 클라이언트(웹 브라우저) 측에 저장됩니다. 이 데이터는 클라이언트의 로컬 저장소에 위치하게 됩니다.정보..
JSP와 서블릿: 동적 웹 개발의 기초
·
🗄️ Backend/JSP
서블릿(Servlet)과 JSP서블릿이란?서블릿은 클라이언트의 요청을 처리하고 동적 웹 콘텐츠를 생성하는 Java 프로그램입니다. 서블릿은 순수 자바 코드로 작성되며, 클라이언트 요청에 따라 HTML 응답을 생성합니다. 서블릿은 자바 쓰레드를 이용하여 다수의 요청을 효율적으로 처리할 수 있는 강력한 구조를 가지고 있습니다.URL 매핑서블릿은 여러 개가 있을 수 있으며, 브라우저에서 웹 컨테이너에 요청할 때 서블릿을 구분하기 위해 URL 매핑이 필요합니다. URL 매핑을 통해 보안을 강화하고, 사용자에게 이해하기 쉬운 URL을 제공할 수 있습니다.WebServlet 어노테이션@WebServlet 어노테이션을 사용하여 서블릿 클래스를 선언하고 구성할 수 있습니다. 이를 통해 다음과 같은 작업을 수행할 수 있..
HTML 기초 및 태그 정리
·
🗄️ Backend/JSP
HTML 입력 양식 태그 정리HTML에서 입력 양식 태그는 사용자가 웹 페이지를 통해 서버에 데이터를 전송할 수 있도록 돕는 매우 중요한 요소입니다. 입력 양식 태그는 사용자의 데이터를 수집하여 서버로 전달하는 역할을 합니다. 기본적으로 두 가지 주요 입력 양식 태그가 있습니다.1. input 태그input 태그는 다양한 사용자 입력을 처리할 수 있는 다목적 태그입니다. type 속성을 사용하여 다양한 입력 형식을 지정할 수 있습니다. 자주 사용되는 input 태그의 type 속성 값은 다음과 같습니다.text: 텍스트를 입력할 수 있는 일반적인 텍스트 상자password: 입력한 내용을 가려주는 비밀번호 입력 상자file: 사용자가 파일을 업로드할 수 있도록 하는 파일 선택기submit: 폼 데이터를 ..
웹 프로그래밍 기초 (SERVER/CLIENT/HTML)
·
🗄️ Backend/JSP
웹 프로그래밍이란?웹 프로그래밍은 웹 어플리케이션을 개발하는 과정으로, 사용자가 웹을 통해 상호작용할 수 있는 프로그램을 만드는 작업입니다. 웹 어플리케이션은 우리가 사용하는 브라우저를 통해 작동하는 소프트웨어입니다. 이를 통해 사용자는 서버에 데이터를 요청하고, 서버는 그에 맞는 정보를 반환하여 동적인 웹 페이지를 보여줍니다.URL의 구성 요소URL(Uniform Resource Locator)은 웹 상에서 자원의 위치를 가리키는 주소입니다. 예를 들어, 우리가 웹 페이지를 방문할 때 사용하는 주소창에 표시되는 것이 바로 URL입니다. URL의 구성 요소는 아래와 같습니다:프로토콜 (Protocol): 데이터를 주고받기 위한 통신 규약으로, 가장 흔한 예는 http 또는 https입니다.IP 주소: 인..
GitHub 소개 및 초기 설정
·
🗄️ Backend/GitHub
1. Git 소개Git은 소스 코드를 관리하기 위한 분산 버전 관리 시스템으로, 여러 개발자들이 동시에 작업할 수 있도록 도와줍니다.GitHub는 Git을 기반으로 한 웹 플랫폼으로, 개발자들이 온라인에서 프로젝트를 함께 관리하고 협업할 수 있는 공간입니다.GitHub 방문하기2. 버전 관리란?버전 관리는 소스 코드의 변경 이력을 추적하고, 유의미한 변화를 기준으로 버전별로 백업하는 시스템입니다. 이를 통해 이전 버전으로 쉽게 되돌아갈 수 있습니다.초기 설정# Git 사용자 정보를 설정합니다.$ git config --global user.name "본인이름영어로" # 사용자 이름 설정$ git config --global user.email 본인이메일 # 이메일 설정$ git config --list ..
PL/SQL (Procedural Language/SQL)
·
🗄️ Backend/SQL
PL/SQL은 오라클에서 제공하는 프로그래밍 언어로, SQL의 확장을 통해 데이터베이스에서 복잡한 로직을 구현할 수 있습니다. PL/SQL은 일반적인 프로그래밍 언어와는 달리 데이터베이스와 밀접하게 연동되어 있어, 대량의 데이터를 처리하거나 여러 쿼리를 일괄 처리할 수 있는 강력한 기능을 제공합니다.1. PL/SQL의 기본 구조PL/SQL 블록은 DECLARE, BEGIN, EXCEPTION, END의 네 부분으로 나뉘며, 아래와 같은 형식을 가집니다.DECLARE -- 변수 선언 영역BEGIN -- 실행 영역EXCEPTION -- 예외 처리 영역END;1.1 익명 블록 예제SET SERVEROUTPUT ON; -- 오라클에서 출력을 활성화합니다.DECLARE v_emp_name e..