[TIL-260316] 스프링 프레임워크 기초: Spring 개념과 개발 환경 구성
·
Spring
프레임워크프레임워크 개념비기능적 요구사항(성능, 보안, 확장성, 안정성 등)을 만족하는 구조와 구현된 기능을 안정적으로 실행하도록 제어해주는 잘 만들어진 구조의 라이브러리의 덩어리. 프레임워크는 애플리케이션들의 최소한의 공통점을 찾아 하부 구조를 제공함으로써 개발자들로 하여금 시스템의 하부 구조를 구현하는데 들어가는 노력을 절감하게 해 준다.예) 게시판 서비스를 만들 때파일 첨부 구현하는데 시간 많이 듦 -> 파일 첨부 기능은 프레임워크가 지원해 주고 개발자는 게시판 메인 기능에 집중. 즉 프레임워크는 비기능적인 요소들을 구현해야 하는 불합리함을 극복해 주어 개발자가 기능적인 요구사항에 집중할 수 있도록 해준다. 디자인 패턴과 마찬가지로 반복적으로 발견되는 문제를 해결하기 위한 특화된 해결책을 제공한다...
[TIL-260306] Servlet & JSP 입문: 자바와 웹, 웹 애플리케이션, HTTP
·
Java
자바와 웹서블릿과 JSP자바 기반의 서버 측 웹 기술로 서블릿과 JSP가 있다.둘다 클라이언트의 요청을 받아 동적인 웹 페이지를 생성하고, 톰캣(Tomcat) 같은 서블릿 컨테이너에서 동작하며 최종적으로는 서블릿 클래스로 변환되어 실행된다.즉 JSP도 결국 내부적으로 서블릿으로 변환되어 실행되기 때문에 기술적으로 동일한 기능을 수행하는 것이다.서블릿 (Servlet)Java 코드 내에 HTML을 삽입하는 구조.로직 처리에 강점이 있어 복잡한 비즈니스 로직에 적합하다.HTML 화면을 변경할 때 자바 코드를 수정하고 컴파일해야 하므로 디자인 수정이 매우 불편하다.컨트롤러 페이지 만들 때 사용.JSP (Java Server Page)HTML 내부에 Java 코드를 삽입하여 화면 구현에 특화되어 있다.디자인(H..
[TIL-260223] 알고리즘: 2차원 배열의 순회, 델타 탐색
·
알고리즘
배열 순회행 우선 순회 int i; // 행의 좌표 int j; // 열의 좌표 int[][] arr= {{1,2,3},{4,5,6},{7,8,10}}; int N = arr.length; // 행의 길이 int M = arr[0].length; // 열의 길이 for (int i = 0; i 행 역 우선 순회 int i; // 행의 좌표 int j; // 열의 좌표 int[][] arr= {{1,2,3},{4,5,6},{7,8,10}}; int N = arr.length; // 행의 길이 int M = arr[0].length; // 열의 길이 for (int i = 0; i = 0; j--) { // 마지막 인덱스 열부터 0까지 System.out.prin..
[TIL-260204] 자바 기초: 메모리 영역과 문자열 데이터 타입
·
Java
이 글은 2026년 2월 4일에 작성된 글입니다.데이터 타입자바의 데이터 타입은 크게 기본타입(원시타입 - primitive type)과 참조 타입(reference type)으로 분류된다.기본타입byte, char, short, int, long, float, double, boolean실제 값을 변수에 저장함참조타입배열, 열거, 클래스, 인터페이스메모리의 주소를 값으로 저장함 (메모리 주소를 통해 객체를 참조) 메모리 영역JVM 메모리 구조는 다음과 같다.모든 구조를 정확히 알면 좋겠지만, 가장 중요하다고 느낀 JVM stack, Heap만 정리해보았다. JVM Stack쓰레드마다 존재하며, 쓰레드 생성 시 같이 생성된다.Stack Frame: 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위..