카테고리 · Java 풀스택 아카데미
카테고리에 포함된 30개의 글
총 3페이지 중 2페이지
[멀티캠퍼스] 풀스택 개발자 아카데미 (20) - Servlet/JSP(4)
매번 DB 연결을 생성하는 비효율을 해결하기 위해, 미리 생성한 연결 객체를 대여하고 반납하는 커넥션 풀(DBCP) 기법을 도입합니다. 톰캣 환경에서 JNDI를 통해 DataSource를 설정하고 DAO에서 이를 활용함으로써, 자원 관리 효율성과 애플리케이션의 안정성 및 성능을 극적으로 향상시킬 수 있습니다. 이는 안정적인 웹 서비스 운영을 위한 필수 과정이며, 향후 이러한 반복적인 설정을 자동화해 주는 스프링 프레임워크 학습의 발판이 됩니다.
[멀티캠퍼스] 풀스택 개발자 아카데미(19) - Servlet/JSP(3)
MVC Model 2 아키텍처는 데이터(Model), 화면(View), 제어(Controller) 역할을 분리하여 기존 Model 1의 한계를 극복하고 유지보수성을 높입니다. 이를 효율적으로 구현하기 위해 단일 진입점을 제공하는 프론트 컨트롤러 패턴과 각 기능을 개별 클래스로 캡슐화하는 커맨드 패턴을 함께 활용합니다. 최종 처리 후 뷰로 제어를 넘길 때는 데이터 보존 여부와 요청의 특성에 따라 포워드(Forward)와 리다이렉트(Redirect) 방식을 구분하여 사용합니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (18) - Servlet/JSP(2)
본문은 GET/POST 방식의 차이와 HttpServletRequest/Response 객체를 활용한 서블릿의 데이터 처리 및 응답 방식을 설명합니다. 또한 비즈니스 로직과 화면 표시를 JSP가 모두 담당하는 MVC Model 1 아키텍처의 개념과 한계를 다룹니다. 이를 통해 코드의 복잡성을 줄이고 유지보수성을 높이기 위한 MVC Model 2 아키텍처의 필요성을 제시합니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (17) - Servlet/JSP(1)
본 글은 자바 기반 동적 웹 프로그래밍의 기초인 서블릿(Servlet)과 JSP의 개념 및 동작 원리를 웹 서버와 WAS의 관계를 통해 설명합니다. 서블릿은 자바 코드로 서버 로직을 처리하고, JSP는 HTML 내에 자바 코드를 삽입하여 화면을 동적으로 구성한 뒤 내부적으로 서블릿으로 변환되어 실행됩니다. 아울러, 인텔리제이(IntelliJ)와 톰캣(Tomcat) 환경에서 프로젝트를 생성하고 URL 매핑을 통해 서블릿을 실행하는 실습 과정을 상세히 안내합니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (16) - Algorithm(5)
동적 프로그래밍(DP)은 중복되는 부분 문제를 해결하고 최적 부분 구조를 활용하여 복잡한 문제를 효율적으로 푸는 알고리즘 설계 패러다임입니다. 이는 재귀와 캐싱을 활용하는 탑다운(메모이제이션) 방식과 반복문으로 테이블을 채워나가는 바텀업(타뷸레이션) 방식으로 나누어집니다. 이 두 접근법은 중간 계산 결과를 저장 및 재사용함으로써 불필요한 반복 계산을 방지하고 연산 성능을 획기적으로 향상시킵니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (15) - Algorithm(4)
탐욕 알고리즘은 매 순간 최선의 선택을 통해 전체 최적해를 도출하는 빠르고 직관적인 전략으로, '탐욕적 선택 속성'과 '최적 부분 구조'를 만족해야 성공을 보장합니다. 거스름돈 문제나 최소 신장 트리 같은 문제에 유용하지만, 조건이 충족되지 않는 경우에는 오답을 낼 수 있어 동적 프로그래밍 등 다른 접근법이 필요합니다. 따라서 이 알고리즘을 적용할 때는 문제의 구조가 탐욕적 선택을 정당화하는지 증명하고 판단하는 통찰력이 핵심입니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (14) - Algorithm(3)
정렬 알고리즘은 구현이 단순하지만 데이터가 많아지면 성능이 저하되는 완전 탐색 기반의 O(n²) 방식(버블, 선택 정렬)과 이를 극복한 분할 정복 기반의 O(n log n) 방식(병합, 퀵 정렬)으로 나뉩니다. 분할 정복 방식은 문제를 해결 가능한 작은 단위로 쪼개어 연산량을 기하급수적으로 줄임으로써 대용량 데이터를 효율적으로 처리할 수 있게 합니다. 따라서 개발자는 각 알고리즘의 패러다임과 특징을 명확히 이해하고, 문제 상황과 데이터 특성에 맞는 최적의 알고리즘을 선택해야 합니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (13) - Algorithm(2)
탐색 알고리즘에는 모든 경우의 수를 전수조사하는 브루트 포스와 비선형 데이터를 체계적으로 순회하는 깊이 우선 탐색(DFS) 및 너비 우선 탐색(BFS)이 있습니다. DFS는 한 경로를 끝까지 탐색한 뒤 되돌아오는 방식으로 스택이나 재귀를 이용해 모든 경로를 탐색할 때 효과적입니다. 반면 BFS는 시작점에서 가까운 노드부터 순차적으로 넓게 탐색해 나가며 큐를 이용해 최단 경로를 찾는 데 최적화되어 있습니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (12) - Algorithm(1)
알고리즘은 문제를 논리적으로 해결하기 위한 절차로, 실행 효율성은 입력 데이터 크기와 시간 복잡도(Big-O)의 관계를 통해 평가됩니다. 효율적인 알고리즘 설계를 위해서는 스택, 큐, 해시 테이블, 연결 리스트 등 각 자료구조의 특징을 명확히 이해해야 합니다. 결국 문제의 조건과 목적에 맞는 적절한 자료구조를 선택하여 적용하는 것이 효율적인 문제 해결의 핵심입니다.
[멀티캠퍼스] 풀스택 개발자 아카데미 (10) - SQL
SQL은 DBMS와 소통하며 데이터를 정의(DDL), 조작(DML), 제어(DCL)하는 표준 언어로, 테이블 구조 설계부터 데이터 CRUD 작업 및 권한 관리까지 담당합니다. 각 명령어의 역할과 제약 조건을 명확히 이해하는 것이 데이터베이스 관리의 기초가 됩니다. 실무 역량을 강화하기 위해서는 기본 개념을 넘어 JOIN, 서브쿼리 등 고급 기술 습득과 지속적인 실습이 중요합니다.