분류 전체보기

[Java] 프로그래머스 - ad 제거하기

[Java] 프로그래머스 - ad 제거하기문제 설명: 문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.방법 1. ArrayList 활용 (기초)가장 직관적인 방법으로, 가변 리스트인 ArrayList를 사용하여 "ad"가 포함되지 않은 문자열만 담은 뒤 배열로 변환합니다.import java.util.ArrayList;import java.util.List;class Solution { public String[] solution(String[] strArr) { List list = new ArrayList(); ..

[Spring MVC] DispatcherServlet(디스패처 서블릿)이란 무엇인가?

[Spring MVC] DispatcherServlet(디스패처 서블릿)이란 무엇인가? Spring MVC 프레임워크를 공부하다 보면 가장 먼저 마주치는 개념이 바로 DispatcherServlet(디스패처 서블릿)입니다. 간단히 말해, 모든 HTTP 요청을 가장 먼저 받아 적절한 컨트롤러로 배달해주는 '중앙 창구' 역할을 합니다. 1. 디스패처 서블릿의 정의 Dispatcher는 "보내다(파견하다)"라는 뜻을 가지고 있습니다. Servlet 컨테이너의 가장 앞단에서 요청을 받아 관리하는 패턴을 Front Controller 패턴이라고 부르는데, 스프링에서는 이를 DispatcherServlet이 담당합니다. 핵심 특징: 과거에는 모든 서블..

[JPA] 2. 엔티티와 값 타입

JPA 시리즈 2편2. 엔티티와 값 타입 JPA를 처음 접하면 모든 클래스가 비슷하게 느껴집니다. 예를 들면, 회원 클래스도 있고, 주소 클래스도 있고, 주문 클래스도 있습니다. 겉보기에는 다 그냥 객체처럼 보이지만, JPA는 이들을 같은 방식으로 다루지 않습니다. 어떤 객체는 따로 관리하고, 어떤 객체는 다른 것에 붙어서 함께 움직입니다. 이 차이를 이해하기 시작하면 JPA가 점점 명확하게 다가오게 됩니다. 처음에 클래스를 설계할 때는 뭔가 다 비슷해 보입니다. 회원 정보를 위한 Member 클래스, 주소를 담는 Address 클래스, 그리고 주문을 나타내는 Order 클래스가 있죠. 자바 코드만 봐서는 전부 그냥 객체이고, 필드도 있고 생성자도 있고 값을 넣어 쓸 수 있습니다. 그래서 아마 처음엔 “..

[JAVA] 자바 예외 처리 완전 정리

자바 예외 처리 완전 정리자바를 공부하다 보면 문법보다 더 먼저 부딪히는 것이 있다.바로 에러다.분명 문법은 맞는 것 같은데 실행이 안 되거나,실행은 되는데 중간에 갑자기 프로그램이 멈추는 경우가 있다.이럴 때 자주 등장하는 개념이 바로 예외 처리(Exception Handling)다.예외 처리는 단순히 에러를 피하는 기술이 아니다.프로그램이 예상하지 못한 상황을 만났을 때어떻게 반응할지를 미리 정해 두는 방식이다.즉, 정상 흐름만 생각하는 것이 아니라실패할 수 있는 상황까지 고려해서 코드를 짜는 태도와 연결된다.그래서 자바에서 예외 처리는 문법 파트이면서도,동시에 프로그램의 안정성을 만드는 핵심 요소라고 볼 수 있다.1. 예외란 무엇인가예외는 프로그램 실행 중 발생하는 문제 상황이다.예를 들어 0으로 ..

[Java] 자바 컬렉션 프레임워크 완전 정리

자바 컬렉션 프레임워크 완전 정리자바를 공부하다 보면 배열만으로는 부족하다는 순간이 꼭 온다.처음에는 숫자 몇 개, 문자열 몇 개 저장하는 정도라서 배열로도 충분해 보이지만,실제로 프로그램을 만들기 시작하면 데이터의 개수가 계속 바뀌고,중복을 막아야 하거나, 빠르게 찾거나, 순서를 유지해야 하는 상황이 자주 생긴다.이럴 때 사용하는 것이 바로 컬렉션 프레임워크(Collection Framework)다.컬렉션은 쉽게 말하면 여러 데이터를 다루기 쉽게 만들어 놓은 도구 모음이다.자바에서는 단순히 "값을 담는 통" 정도가 아니라,데이터를 어떤 방식으로 저장하고,어떤 속도로 추가하고,어떤 방식으로 검색하고,중복을 허용할지 말지까지 구조적으로 나누어 제공한다.그래서 컬렉션을 제대로 이해하면단순 문법을 아는 수준을..

[JPA] 1.JPA란?

JPA 시리즈 1편1. JPA란? 처음 JPA를 접하게 되면, 종종 SQL을 자동으로 만들어주는 도구라고만 여기는 경우가 많습니다. 하지만 JPA를 단순히 SQL 자동 생성 기술로만 이해한다면 곧 한계에 봉착하게 됩니다. JPA의 진짜 본질은 객체의 상태 변화와 그 관계를 데이터베이스에 어떻게 반영할 것인가에 초점이 맞춰져 있습니다. 처음 JPA를 배우면 대부분 이렇게 떠올립니다. 엔티티를 만들고 persist()를 호출하면 insert가 나가고, 값을 바꿨더니 update 쿼리가 실행된다. 이 경험 때문에 JPA를 단순히 자바 객체를 데이터베이스에 저장해주는 기술이라고만 쉽게 정의하고 넘어가기 쉽습니다.하지만 실제로 JPA의 구조와 개념은 이보다 훨씬 복잡하고 깊이가 있습니다. 예를 들어, 쿼리가 생각..

[jQuery] 05. Ajax(비동기 통신) 완전 정리 (GET / POST / JSON / $.ajax)

[jQuery] 05. Ajax(비동기 통신) 완전 정리 (GET / POST / JSON / $.ajax)웹에서 “로그인”, “게시글 목록 불러오기”, “댓글 등록”, “검색 자동완성” 같은 기능은페이지를 새로고침하지 않고도 서버와 데이터를 주고받아야 합니다.이때 많이 쓰는 방식이 Ajax입니다.이번 글은 $.ajax()를 중심으로,GET/POST 차이, JSON 처리, 자주하는 실수까지 “깊게” 정리합니다.1. Ajax가 뭐예요?Ajax는 한 문장으로 정리하면 이렇습니다.페이지를 새로고침하지 않고 서버와 통신해서 데이터를 가져오거나(조회) 보내는(저장) 방식예를 들어, 게시글 목록을 불러올 때 전체 페이지를 다시 불러오면 느리고 불편합니다.Ajax를 쓰면 “필요한 데이터만” 받아서 화면 일부만 바꿀 ..

[jQuery] 04. 이벤트(Event) 완전 정리 (click / on / this / preventDefault / 이벤트 위임)

[jQuery] 04. 이벤트(Event) 완전 정리 (click / on / this / preventDefault / 이벤트 위임)jQuery에서 가장 “실무처럼 보이는” 구간이 바로 이벤트(Event)입니다.화면에 있는 버튼을 클릭했을 때, 입력창에 글을 썼을 때, 폼을 제출했을 때처럼사용자 행동(또는 브라우저 동작)에 반응해서 코드를 실행하는 개념입니다.이번 글은 단순히 .click()만 소개하는 게 아니라,왜 on()을 많이 쓰는지, 이벤트 위임이 왜 필요한지까지 “깊게” 정리합니다.1. 이벤트(Event)란 무엇인가?이벤트는 “어떤 일이 발생했다”는 신호입니다. 예를 들면 다음이 전부 이벤트입니다.클릭: click더블클릭: dblclick키보드 입력: keydown / keyup입력값 변경: ..