본문 바로가기

분류 전체보기73

자바 추상클래스 (Java abstract class) 자바 추상클래스 (Java abstract class) 1. 추상화 클래스 간의 공통점을 찾아내서 공통의 조상을 만드는 작업 상속 계층도를 따라 올라갈수록 클래스의 추상화는 더욱 심화된다. 2. 구체화 상속을 통해 클래스를 구현, 확장하는 작업 상속 계층도를 따라 내려올수록 클래스는 더 구체적이다. 3. 추상 메소드, 추상 클래스 추상 메소드 선언되어 있으나 구현되어 있지 않은 메소드 (중괄호가 없는 메소드) abstract 키워드를 사용하여 선언 추상 메소드는 서브 클래스(자식 클래스)에서 오버라이딩이 필수 추상 클래스 추상 메소드를 하나라도 가진 클래스 abstract 키워드를 사용하여 선언 추상 클래스는 일반 메소드를 가질 수 있으며, 일반 메소드만 가지고 있더라도 추상 클래스로 만들 수 있다. 추.. 2023. 3. 5.
자바 상속 (Java Inheritance) 자바 상속 (Java Inheritance) 1. 상속 (Inheritance) 기존 클래스의 변수(데이터)와 메소드(로직, 코드)를 물려받아 새로운 클래스를 구성 코드의 중복 감소, 클래스의 간결화 가능 먼저 작성된 프로그램을 재사용함으로써 신뢰성 있는 프로그램을 손쉽게 개발 클래스 간 계층적 분류 및 관리가 가능하여 유지보수 용이 class 서브클래스 extends 슈퍼클래스 2. 상속 특징 다중 상속을 지원하지 않는다. 여러 개의 클래스 상속 불가능 (부모 클래스는 한 개만 가질 수 있다.) 상속 횟수에 제한을 두지 않는다. 모든 클래스는 java.lang.Object를 상속받는다. 3. 메소드 오버라이딩 부모 클래스가 가지고 있는 메소드를 그대로 가지고 와서 (리턴타입, 메소드명, 매개변수) 중괄.. 2023. 3. 5.
자바 ArrayList (Java ArrayList) Java ArrayList 1. Collection 요소(Element)라고 불리는 가변 개수의 객체들의 집합 여러 개의 객체를 보관할 수 있게 만들어진 클래스들의 집합 (기본 타입의 값을 넣으면 자동으로 wrapper 클래스 변환) 고정 크기의 배열을 다루는 불편함 해소 2. Collection 특징 요소의 개수에 따라 자동 크기 조절 요소의 추가, 삭제에 따른 요소의 이동을 자동 관리 Generic 기법으로 구현 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 ※ generic 기법 예시 3. ArrayList ArrayList 변수명 = new Array(); java.util.ArrayList 가변 크기 배열을 구현한 클래스 ArrayList에 객체 삽입과 삭제 리스트의 맨 뒤에 객체.. 2023. 3. 4.
JSP Servlet Maven JSP Servlet Maven 1. Maven Apache 사에서 만든 빌드 툴(build tool) bulid : 프로젝트를 위해 작성한 코드나 여러 자원을 jvm이나 was가 인식 가능 구조로 패키징 하는 과정, 컴파일 뿐만 아니라 테스팅 및 배포까지 일련의 작업을 포함 Maven 필요 이유 각 팀원이 똑같은 개발을 하기 위해서는 같은 버전의 파일을 사용해야 한다. pom.xml 파일을 통해 정형화된 빌드 시스템으로 프로젝트를 관리 라이브러리 관리가 용이, 정해진 빌드 방법을 사용해 협업에 유리, 다양한 플러그인을 통해 많은 작업이 자동화 2. Maven 설치 Group Id 설정 후 설치 시작 → y 누르기 3. Maven 설정 JRE System Library, MavenDependencies .. 2023. 2. 13.
JSP Servlet Web_MVC JSP Servlet Web_MVC 1. 디자인 패턴 (Design Pattern) 소프트웨어 설계에 있어 공통된 문제들에 대한 표준적인 해결책 2. MVC 시각적으로 보여지는 부분과 데이터를 처리하는 부분을 분리하여 유연한 구조를 설계 Model : 어플리케이션의 정보, 데이터 (실행에 직접적 관여하지 않음) View : 사용자가 보게 될 결과 화면 출력 Controller : 사용자의 입력처리와 흐름제어 담당 (어플리케이션의 행위 정의) 3. Model 1, Model 2 비교 Model1 : JSP에서 출력과 로직을 전부 컨트롤 Model2 : JSP에서는 출력만 처리 (View와 Controller를 명확하게 분리) ※ Model1 ※ Model2 Model1 Model2 View와 Control.. 2023. 2. 13.
JSP Servlet Scope JSP Servlet Scope Scope JSP 페이지에서 사용되는 객체들은 JSP 내장 객체이든, 페이지 내에서 만들어졌건 간에 모두 정해진 영역 안에서만 사용 가능 1. PageScope 저장된 값은 저장한 페이지에서 지역변수로 사용 해당 JSP나 Servlet이 실행되는 동안에만 정보를 유지하고자 할 때 사용 값 저장, 불러오기 pageContext.setAttribute(name(String), value(Object)); pageContext.getAttribute(name(String)); EL 표기법 ${pageScope.name}; ${name} 2. Request Scope 클라이언트로부터 요청을 받고 응답할 때까지 사용 가능 HttpServletRequest 객체로 사용 가능 serv.. 2023. 2. 8.
JSP Servlet 쿠키, 세션 (Cookie, Session) JSP Servlet 쿠키, 세션 (Cookie, Session) 1. 쿠키와 세션의 필요성 HTTP 특징 connectionless(비연결성) : 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어버리는 특징 stateless(무상태) : 통신이 끝나면 상태를 유지하지 않는 특징 쿠키와 세션을 사용해 사용자의 상태를 유지할 수 있음 2. 쿠키 (Cookie) 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 작은 데이터 파일 쿠키 동작 방식 쿠키 사용 예시 ① ID 저장, 로그인 상태 유지 ② 일주일간 다시 보지 않기 ③ 쇼핑몰 장바구니 기능 쿠키 단점 ① 보안에 취약 ② 작은 허용 용량 ③ 브라우저를 변경할 경우 다른 브라우저에게 저장한 쿠키 값을 사용할 수 없음 3. 쿠키 생성, 전달, 확인.. 2023. 2. 7.
JSP Servlet 내장 객체 (Implicit Object) JSP Servlet 내장 객체 (Implicit Object) 내장 객체 (Implicit Object) JSP page 안에 선언을 하지 않고도 사용할 수 있는 객체 Web container가 JSP page를 Servlet class로 변환시키면서 자동으로 내장 객체를 선언 Scriptlet을 다중으로 사용하지 않아 코드가 간결해질 수 있음 response.sendRedirect() : 현재 실행 중인 JSP page의 실행을 중단하고 다른 Web page가 대신 호출되도록 만드는 기능 forward 방식으로 페이지 이동 및 데이터 전송 RequestDispatcher rd = request.getRequestDispatcher("데이터를 받는 경로"); request.setAttribute("ke.. 2023. 2. 4.
자바 객체 지향 프로그래밍 OOP (Java Object Oriented Programming) 자바 객체 지향 프로그래밍 OOP (Java Object Oriented Programming) 1. 패러다임(paradigm) : 사람들의 견해나 사고를 근본적으로 규정하는 테두리 ※프로그래밍에서 패러다임 ① 절차지향 (C언어 등) 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결 ex) 자동차 제조 : 엔진, 차체, 핸들, 바퀴, 의자 순서로 차례를 지켜 만들어져야 함. 컴퓨터의 처리 구조와 유사, 실행 속도가 빠름 모든 구성 요소가 연결되어 유지 보수가 어려움 실행 순서가 정해져 있어서 코드 순서가 바뀌면 결과가 달라질 수 있음 ② 객체지향 (C++, Java, Python 등) 객체 : 여러가지 데이터들이 모여있는 복잡한 자료형 클래스와 객체 class : 실제 Object를 제작하기 전.. 2023. 1. 31.