
2023년 4월 11일 화요일, 드디어 백엔드 개발자가 되기 위한 과정의 첫 삽을 뜨다!오늘은 기다리고 기다리던 백엔드 부트캠프 개강날이었다.어제 소풍가기 전 날 밤처럼 설레이는 마음으로 잠든 후 평소보다 일찍 일어나 샤워 후 책상앞에 앉았다.첫 날이기에 툴세팅과 커리

오늘의 학습 주제 컴퓨터와 프로그래밍의 이해 웹 클라이언트와 웹 서버 웹 프론트엔드의 핵심 기술 HTML, CSS, JS Chat GPT 활용법 | 컴퓨터와 프로그래밍의 이해 | > 컴퓨터란? 입력받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하

컴퓨터를 조작하기 위한 입력과 출력 I/O(Input/Output) "아이오"CLI : 명령줄 인터페이스(Command-Line Interface)GUI : 그래픽 사용자 인터페이스(Graphic User Interface)프롬프트(Prompt) : CLI 환경에서 키

효율적인 소스 코드 기록 관리를 위해 로컬에서 버전을 관리해주는 ‘분산형 버전 관리 시스템’버전관리 기능백업 기능협업 기능Git Repository를 관리할 수 있는 클라우드 기반 서비스1\. Fork : Other Remote Repository를 나의 Remote

운영체제에 독립적, 즉 모든 운영체제에서 실행이 가능객체 지향 언어 (Object Oriented Programming, OOP)함수형 프로그래밍 지원 : 람다식, 스트림 > 컬렉션의 요소를 필터링, 매핑, 집계 처리하기 쉬워지고 코드가 간결자동 메모리 관리(Garba

조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행<예시>배열 및 컬렉션 항목의 개수만큼 반복하고 자동적으로 for문을 나감조건식이 true일 경우에 계속해서 반복반복문인 for문, while문, do-while문과 switch문 실행을 중지할 때 사용

| 연산자(Operator) 산술 연산자 사칙연산에 사용되는 연산자(+, -, *, /) 나머지 연산자(%) 0으로 나눌 수 없다 좌항과 우항이 모두 int형이면 그 결과도 int형이기 때문에 소수점 이하의 값은 버려지고, 오직 몫만 결과로 반환

동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조= 메모리 공간 상에 물리적으로 값들을 모아서 저장하는 것요소(element) : 배열이 가진 각 값들인덱스(index) : 배열의 각 요소가 부여받는 순번 차원 : 배열이 중첩된 정도다차원 배열 : 배열의 요소가 또

프로그래밍에서 필요한 데이터를 한 데 모아 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 협력과 유기적인 상호작용을 통해 특정 기능을 구성하는 프로그래밍 방법론즉, 객체지향 프로그래밍은 실제 사물의 속성(state)과 기능(behavior)을 분석한 후에

new 가 만든 인스턴스의 변수를 초기화하는 특수한 메서드생성자의 이름은 반드시 클래스의 이름과 동일리턴 타입이 없다오버로딩이 가능매개변수의 유무와 개수에 따라 구분모든 클래스에는 반드시 하나 이상의 생성자가 존재해야 한다.만약 생성자가 클래스 안에 포함되어 있지 않은

| 상속 (Inheritance) 기존 클래스를 재활용해 새 클래스를 작성하는 것 부모클래스(상위클래스)를 확장(상속)시켜 자식클래스(하위클래스)를 생성하는 것 상속을 하는 이유는? 코드 재활용으로 중복 코드 작성을 하지 않아도 된다 하나의 객체가 여러 모양으로 표현

poly (여러개) + morphism (형태) : 하나의 객체가 여러 가지 형태를 가질 수 있는 성질다형성 : 상위 클래스 타입의 참조 변수를 통해 하위 클래스의 객체를 참조예시)일반적으로는 아래와 같이 동일한 클래스 타입의 참조 변수 생성 및 초기화!BUT, 상속

기존 클래스들의 공통적인 요소들을 뽑아서 상위 클래스를 만들어 내는 것

서로 연관된 상수 (변하지 않는 값) 들의 집합< 전역변수로 상수 정의 : public static final >🙋♀️ 수많은 상수를 정의하면?🙋♀️ 근데, 상수명 중복으로 컴파일 에러가 나면 어떡해? 그럼 인터페이스로 구분하자!🙋♀️ 어? 그랬더니,

제네릭

예기치 않게 발생하는 에러에 대응할 수 있는 코드 작성 과정에러의 원인은 수없이 다양하지만, 자바에서는 발생 시점에 따라컴파일 에러 (Compile Time Error)런타임 에러 (Run Time Error)문법적인 문제를 가리키는 신택스(syntax) 오류로부터 발

자바에서 컬렉션은 객체들을 담을 수 있는 '자료 구조'여러 데이터를 그룹으로 묶어놓은 것컬렉션에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을 수행하는 편리한 인터페이스, 메서드들을 미리 정의하여 제공데이터의 순서 유지, 중복 저장 가능배열과 같이 객체

컬렉션에 저장된 요소들을 순차적으로 읽어오는 역할Collection 인터페이스에 정의된 iterator()를 호출하면, Iterator 타입의 인스턴스가 반환Collection 인터페이스를 상속받는 List와 Set 인터페이스에서 사용 가능hasNext() : 읽어올

요소의 중복을 허용하지 않고, 저장 순서를 유지하지 않는 컬렉션HashSetTreeSet 객체추가 객체 검색 객체 삭제이진 탐색 트리(Binary Search Tree) 형태로 데이터 저장하나의 부모 노드가 최대 두 개의 자식 노드와 연결되는 이진트리정렬과 검색에

키(key)와 값(value)으로 구성된 객체(Entry)를 저장하는 구조의 인터페이스 Key 중복 저장 불가, Value 중복 저장 가능 (Key가 식별자 역할)기존 저장 Key 와 중복 시, 새로운 value 로 덮어씌움Map 인터페이스를 구현한 클래스 : Has

소스 코드가 컴파일되거나 실행될 때 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해 주는 문법 요소

함수형 프로그래밍 기법 (함수(메서드)를 좀 더 간단하고 편리하게 표현하기 위해 고안된) 문법 요소

배열, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자

재귀

데이터(data)를 순서대로 쌓는 후입선출 자료 구조LIFO(Last In First Out) / FILO(First In Last Out)하나의 입출력 방향으로 제한적 접근데이터를 한번에 하나씩만 넣고 뺄 수 있음Stack에 데이터를 넣는 것을 'PUSH', 데이터를

입구와 출구가 모두 뚫려있어, 데이터가 들어온 순서대로 빠져나가는 선입선출 자료구조FIFO(First In First Out) / LILO(Last In Last Out)Queue에 데이터를 넣는 것을 'enqueue', 데이터를 꺼내는 것을 'dequeue'데이터(d

하나의 뿌리로부터 가지가 사방으로 뻗은 형태의 단방향 그래프의 자료구조계층적 자료 구조비선형 구조 (Nonlinear Structure)루트 (Root) : 트리 구조의 시작점이 되는 최상위 노드노드 (Node) : 트리 구조를 이루는 모든 개별 데이터간선 (edge)

자식 노드가 최대 두 개인 노드들로 구성된 트리정 이진 트리(Full binary tree)완전 이진 트리(Complete binary tree)포화 이진 트리(Perfect binary tree)= 이진 탐색 속성 + 이진 트리: 오름차순으로 정렬된 데이터에서 특정값
MySQL, Oracle, SQLite, PostgreSQL 등 다양한 관계형 데이터베이스에서 사용하는 데이터베이스 용 프로그래밍 언어. SQL을 사용하기 위해서는 데이터가 구조가 고정되어 있어야 합니다.데이터의 구조가 고정되어 있지 않은 데이터베이스, 테이블을 사용하
데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명데이터(data): 각 항목에 저장되는 값테이블(table 또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적열(column; 또는 field) :

특정기기에 설치해서 사용하는 애플리케이션으로Apple iOS, Android OS, Windows와 같은 특정 실행환경에 종속된다.별도의 설치없이 웹 브라우저를 통해 접근이 가능한 애플리케이션지리적으로 제한된 작은 영역 안에서 연결된 네트워크네트워크 : 두 대 이상의

Spring Framework

Spring 삼각형Java로 생성하는 순수한 객체Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.특정 환경에 종속적이지 않아야 한다.종속적이지 않아야 재사용이 가능하고, 확장이 유연한 코드저수준 레벨의 기술과 환경에 종

컴퓨터 시스템에서의 아키텍처는 어떠한 시스템을 구축하는 데 있어 해당 시스템의 비즈니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것이해 당사자들의 전체 시스템 구조 파악에 무리가 없도록 이미지나 도형 등을 사용하여 최대한 심플함을 유지.하드웨어와 소프트웨어를

Spring의 모듈 중 웹 게층을 담당하며, 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 Spring Web MVC클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일웹 애플리케이션이 클라이언트의 요청을 전달

Spring MVC에서 클라이언트 요청의 최종 목적지인 Controller 클래스애플리케이션의 경계를 설정 & 요구사항을 수집패키지 구조 생성기능 기반 패키지 구조(package-by-feature): 나누어진 패키지 안에는 하나의 기능을 완성하기 위한 계층별(API

데이터 전송 객체: 서로 다른 계층 간 데이터 전송을 위해 데이터를 담는 용도로 사용되는 객체멤버 변수와 그에 대한 Getter/Setter 메서드로 구성필요한 데이터만 딱 담아 전송/저장 목적의 간결한 객체이기에 비즈니스 로직을 처리 XpostMember 핸들러 메서

API 계층에서 전달받은 클라이언트의 요청 데이터를 기반으로 실질적인 비즈니스 요구사항을 처리하는 계층Spring의 DI(Dependency Injection)를 이용해 API 계층과 비즈니스 계층 연동API 계층에서 전달받은 DTO 객체를 비즈니스 계층의 도메인 엔티

DTO 유효성 검증 실패 시 아래와 같은 Response Body의 내용만으로는어떤 항목이 검증에 실패했는지 알 수 없다.controller 클래스에 @ExceptionHandler 애너테이션을 사용해 예외를 처리하는 handleException() 메서드를 만들자.M

Java 언어 애플리케이션을 테스트하기 위한 오픈 소스 테스트 프레임워크

JUnit 기반의 단위 테스트에서 사용할 수 있는 Assertion Framework
var 주로 레거시 코드에서 자주 볼 수 있다현재 자바스크립트 코드에서는 let 또는 \`constlet변수 값이 변경될 수 있는 경우에 사용루프 카운터나 값이 변할 수 있는 변수에 적합const변수 값이 변경되지 않는 경우, 즉 상수를 표현할 때 사용객체나 배열 같은

JAVA 언어를 이용해 사용자의 요청을 받아 처리하고 처리 결과를 다시 사용자에게 전송하는 역할의 Class 파일이다. 웹에서 동적인 페이지를 java 로 구현한 서버 측 프로그램이다.<동적페이지의 예시>Client 는 HTTP 요청을 서버로 보낸다서블릿 컨테이너