데이터 타입: 자료의 형으로, 메모리의 크기와 값의 종류를 결정primitive type: 값 자체를 저장reference type: 참조를 저장연산자: 계산을 목적으로 사용하는 기호최우선 > 단항 > 산술 > 시프트 > 관계(비교) > 논리 > 삼항 > 대입객체지향:
메모리의 주소: 직접 주소(primitive), 간접 주소(reference)같은 타입: 배열다른 타입: 인스턴스조건에 따라 메모리의 값을 사용. 분기. 상태를 메모리에 저장아파치 톰캣: 미들웨어
프레임워크: 작업 환경. 차, 비행기, 배 같은 운송수단. 대체가 어렵고, 규칙을 따라야함하나의 애플리케이션을 구축할 때, 모든 애플리케이션의 공통적인 개발 환경을 제공해주는 것개발에 필요한 화면구현, DB 연동, 개발 환경들에 공통적인 부분을 제공함으로써 개발 시간과
WORA(Write Once Run Anywhere): JVM으로 인해 가능. 운영체제에 종속적이지 않음메모리 자동 정리: GC(Garbage Collection)객체지향의 특징: 추상화, 다형성, 상속, 캡슐화변수: 메모리 공간. 값을 할당해서 사용하고, 크기는 타입
우리 주변에 있는 모든 것으로, 프로그래밍의 대상(주체가 활용)객체는 많을수록 좋음주체의 쉬운 사용자유로운 객체 교체블록 형태의 모듈화신뢰성 높은 프로그래밍추가 / 수정 / 삭제 용이재사용성 ↑현실의 객체가 갖는 속성, 기능 👉 추상화 👉 클래스에 정의클래스 👉
인스턴스 변수 초기화사물 그 자체this: 객체 자기 자신객체지향: 동적모듈화 👉 객체객체를 집단 처리다른 생성자 호출: this()객체는 기능을 가진 데이터객체 생성 시 클래스 내 속성만 힙 영역, 메소드는 메소드 영역(클래스 영역 내)스택: 코드 실행시
기존 클래스의 자산(멤버)을 자식 클래스에서 재사용(생성자, 초기화 블록 제외)부모 코드 변경 👉 자식에게도 영향모든 클래스의 조상 클래스: Object상속: is-a 관계자바는 단일 상속포함: has-a 관계조상 메서드를 자식에 적합하게 수정(자식꺼만 남음)메서드
자손 클래스에서 반드시 재정의되는 것들 → 조상에서의 구현이 무의미메서드 선언부만 남김abstract 키워드 추가추상 메서드를 하나 이상 가진 클래스abstract 추가상속 전용 클래스객체 생성 불가상위 클래스 타입으로 자식 참조는 가능조상 클래스에서 상속받은 abst
추상클래스와 인터페이스 모두 객체 생성이 불가능추상 메서드 구현을 강제화추상클래스는 다중 상속 불가, 인터페이스는 가능(다중 상속, 다중 구현)추상클래스는 구현부를 가진 메서드 선언 가능인터페이스는 추상메서드만 가능(자바8 이상부터는 default, static 메서드
인터페이스의 추상메서드 중 일부 중복구현이 필요한 부분을 추상클래스로 구현하여 중복을 줄임Collection 프레임워크에서도 많이 쓰이는 방식ArrayList의 경우 List, Collection 인터페이스의 구현체이지만, AbstractList 추상클래스를 상속받음
데이터의 입력, 출력끝단: 노드노드 간 연결, 데이터 전송: 스트림스트림은 단방향바이트: XXXInputStream, XXXOutputStream문자: XXXReader, XXXWriter버퍼 사용시 flush() 호출하여 버퍼 내용을 비움가장 기본적인 입출력 장치 중
System.in, System.out, System.errSystem.setIn(), System.setOut(), System.setErr()파일, 입력 스트림 등에서 데이터를 읽어와 구분자로 토큰화하고 다양한 타입으로 형변환하여 리턴토큰화: 의미있는 단위로 구분생
순열: 서로 다른 n개 중 r개를 ‘순서 있게’ 뽑아 나열nPr조합: 서로 다른 n개 중 r래를 ‘순서 무관하게’ 뽑아 나열nCr = nPr / r!부분집합: 집합에 포함된 원소들을 선택부분집합의 수(공집합 포함): 원소의 수가 n개일 때, 2^n물건을 쌓아 올리듯 자
중위 표기법을 후위 표기법으로후위 표기법의 수식을 계산스택과 마찬가지로 삽입과 삭제의 위치가 제한적인 자료구조뒤에서 삽입, 앞에서 삭제FIFO순서를 가진 데이터의 집합을 가리키는 추상 자료형중복 허용순차 리스트: 배열 기반연결 리스트: 메모리 동적 할당 기반
후위 표기법으로 표현된 수식 풀기괄호 포함 문제도 포함비선형 구조원소들 간 일대다 관계(그래프는 다대다)원소들 간 계층 관계를 가지는 계층형 자료구조상위 원소에서 하위 원소로 내려가면서 확장되는 트리 모양의 구조노드: 트리의 원소한 개 이상의 노드로 이루어진 유한 집합
순열 - 순서가 있는 열 조합 - 순서가 없는 열 부분집합 - 주어진 원소르 만들 수 있는 모든 경우의 수
이진트리 완전 탐색
최적해를 구하는데 사용되는 방법최적화(Optimization): 가능한 해들 중에서 가장 좋은 해(최대 or 최소)를 찾는 문제선택 시점의 결정은 지역적으로는 최선이지만, 전체 최적이라는 보장은 없음한번 선택한 것은 번복하지 않음분할(Divide): 해결할 문제를 여러
백트래킹퇴각검색이라는 뜻으로, 모든 조합을 시도해서 해를 찾는다.해를 얻을 때까지 모든 경우를 시도각 가능성은 트리로 생각할 수 있으며, 가지 중 해결책이 있다.가지를 하나 선택하면 새로운 트리가 생성된다.가지치기를 통해 필요없는 가지를 건너뛰며 탐색한다.완전탐색을 통
상호 간 중복 원소가 없는 집합교집합이 없으므로, 각 집합에서 아무 원소나 뽑아도 각 집합의 대표자(representative)가 된다.Make-Set, Find-Set, Union 3가지 연산이 존재Make-Set: 최소 단위 집합으로 크기가 1인 집합Find-Set
가중치가 있는 그래프에서 두 정점 사이의 경로들 중 가중치 합이 최소인 경로다익스트라(Dijkstra) 알고리즘: 음의 가중치가 존재하면 안됨벨만-포드(Bellman-Ford) 알고리즘: 음의 가중치가 있어도 가능플로이드-워셜(Floyd-Warshall): 모든 정점들
원문 출처: https://developer.mozilla.org/ko/docs/Learn/HTML/Introduction_to_HTML문서의 특정 텍스트 영역이 문단인지 목록인지 표의 일부인지 구분할 수 있도록 의미를 부여하고, 헤더인지, 컨텐츠 컬럼인지,
원문 출처: https://ofcourse.kr/js-course/JavaScript-입문HTML: 화면에 표시되는 정보를 약속CSS: 스타일 규격JavaScript: 웹 페이지를 동적으로 만들어주는 언어. 객체 기반 스크립트 언어HTML 문서 내에 기술하거나
웹 브라우저에서 작동하는 최상위 객체브라우저와 관련된 여러 객체와 속성, 함수가 존재하며, 기본 제공 프로퍼티도 포함된다.BOM(Browser Object Model)으로 불리기도 한다.alert(): 알림창 띄우기confirm(): 확인 / 취소 선택창 띄우기prom
HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리크로스 플랫폼을 지원(어느 브라우저에서도 동일한 동작 보장)네이티브 DOM API보다 직관적이고 편리한 API 제공, 개발 속도 향상이벤트 처리, Ajax, 애니메이션의 쉬운
출처: https://www.oracle.com/kr/database/what-is-database/DB: 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음이다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS
데이터베이스의 상태를 변화시키는 작업 단위START TRANSACTION: COMMIT, ROLLBACK이 나올 때까지 실행되는 모든 SQLCOMMIT: 모든 코드 실행ROLLBACK: START TRANSACTION 실행 전 상태로 되돌아감집계함수하나 이상의 행을 묶
자바를 사용하여 웹페이지를 동적으로 생성하는 서버 사이드 프로그램자바 클래스의 일종으로 구현 시 Servlet 인터페이스를 구현Servlet 인터페이스의 구현이 용이하도록 GenericServlet, HttpServlet 추상클래스 존재서블릿: HTML in JavaJ
JSP로 구성할 수 있는 아키텍처: Model 1, Model 2Model 1: 로직과 디자인을 모두 jsp가 처리요청이 들어오면 자바 빈즈나 서비스 클래스를 이용하여 작업 처리구조가 단순하며 직관적 / 개발 시간이 짧아 비용 감소출력을 위한 view(html) 코드와
메모이제이션(memoization): 이전에 계산한 값을 메모리에 저장해서 매번 다시 계산하지 않도록 하여 전체 실행 속도를 빠르게 하는 기술로, DP의 핵심DP는 그리디 알고리즘과 같이 최적화 문제를 해결하는 알고리즘중복 부분문제 구조(Overlapping subpr
AOPOOP를 더욱 보완, 확장하여 OOP를 OOP 답게 사용할 수 있도록 도움AOP 도입 전까지는 객체의 재사용에도 불구하고 필수적으로 반복되는 코드 중복은 여전AOP의 가장 기초 개념은 ‘관심의 분리’기능을 비즈니스 로직과 공통 모듈로 구분한 후 개발자의 코드 밖에
기존 jsp와 servlet을 이용한 mvc 패턴 구현 시사용자 요청 → 요청에 따라 메서드 호출(data 추출 후 dto 생성, 전달 → 서비스(비즈니스 로직) → 데이터베이스 → 결과 반환) → path 반환위와 같은 순서를 거치는데 변하지 않는 과정들이 있다. 이
ModelService, DAO 등애플리케이션 상태 캡슐화비즈니스 로직 처리변경을 View에게 통지ViewModel을 화면에 시각적으로 표현사용자 입력을 Controller에 전달Controller가 View를 선택하도록 허용Controller애플리케이션의 행위 정의응
Controller에 들어오는 request와 response를 가로채는 역할관리자 인증을 하는 용도로 사용할 수 있음서블릿의 앞, 뒤에서 request와 response를 가로채는 filter와 역할이 유사호출 시점Filter: DispatcherServlet이 실행
API: Application Programming InterfaceOpen API는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스(약속, 규약)Open API와 함께 거론되는 기술이 REST이며, 대부분의 Open API는 REST 방식으로 지원Rep
출처: https://5equal0.tistory.com/entry/StatefulStateless-Stateful-vs-Stateless-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%99%80-HTTP-%EB%B0%8F-REST인터페이스 일관성:
프론트 개발자와 백 개발자 사이 개발 상황 변화에 따른 API의 변동 사항 발생 시 이때마다 문서를 수행하는 번거로움이 발생 → 이를 해결하기 위해 Swagger 사용간단한 설정으로 프로젝트의 API 목록을 웹에서 확인 및 테스트 할 수 있게 해주는 라이브러리Swagg
Evan You에 의해 만들어짐Approachable(접근성)Versatile(유연성)Performant(고성능)Model + View + ViewModelModel: 순수 자바스크립트 객체View: 웹페이지의 DOMViewModel: Vue의 역할기존에는 자바스크립트
화면에 표시되는 텍스트의 형식을 쉽게 변환해주는 기능filter를 이용하여 표현식에 새로운 결과 형식 적용특정 데이터의 변경사항을 실시간으로 처리캐싱을 이용하여 데이터의 변경이 없을 경우 캐싱된 데이터를 반환Setter와 Getter를 직접 지정할 수 있음작성은 met
참조: https://www.youtube.com/watch?v=1QiOXWEbqYQ로그인: 보안에 직결로그인 상태를 유지 → 토큰, 세션인증(Authentication): 로그인특정 페이지에 권한이 있는 사람임을 확인인가(Authorization)한번 인증