👇 아래는 합격후기 (네이버 블로그)https://blog.naver.com/wnguswn7/222840700673원래는 네이버 블로그에 합격 후기와 나머지 글을 쓰려고 했는데많은 개발자 분들이 velog를 사용한다고 하고 코드 적기도 편할 것 같아서이제부터
컴퓨터 입력 받은 데이터를 정해진 규칙(프로그램)대로 처리해서 처리 결과를 저장하고 출력하는 전자 장치 소프트웨어와 하드웨어로 나뉨 >#### [소프트웨어] 하드웨어가 어떻게 동작해야 하는지 규정해놓은 명령어의 집합 >#### [하드웨어] 컴퓨터를 구성하는 기계적 장치
HTML & CSS & Javascript 각각의 역할HTML의 기본 구조와 문법, 자주 사용하는 요소CSS의 시맨틱 태그(semantic tag)와 문법 구성박스 웹 페이지의 구조를 담당하는 마크업 언어 (Structure)Tag (<..>)들의 집합으로 이루어
Flexboxㅇ요소들을 자동으로 정렬해주고 박스를 유연하게 늘리거나 줄여 레이아웃을 잡을 수 있음!display : flex💡 중요한 점!1\. flexbox는 항상 부모에게 말을 걸어 자식 요소들을 조종한다2\. Main Axis와 Cross Axis는 항상 고정적
오늘은 첫 페어 학습!페어와 배운 내용들을 이용해서 twittler 목업 페이지를 만드는 것이다💡 목업 페이지란?HTML 과 CSS로만 이루어져 기능은 하지 않는 깡통 프로그램하지만 코드스테이츠에서 조금의 재미를 위해 JS 코드를 조금 작성해두셨다고 한다!(우린 배우
CLI와 GUICLI 명령어 사용하기환경변수컴퓨터 운영체제 중 하나 ! ( 개발자들이 주로 쓴다고 한다 )💡 여기서 운영체제란?사람과 컴퓨터를 이어주는 매개체인 Operating System (OS)명령줄 인터페이스 (터미널에 명령어를 넣고 컴퓨터를 제어하는 방식)장
Git과 GitHub페어와 Git Workflow 실습파일의 버전 관리, 백업, 협업이 가능한 프로그램git Repository(저장소)를 관리하는 곳내 컴퓨터에 저장하지 않고 대신 저장이 가능Fork - 복사할 코드가 있는 Rmote Repository의 코드를 내
📕 오늘 배운 내용! ✏️ Java의 특징 운영체제에 독립적 객체 지향 언어(Object Oriented Programming, OOP) 함수형 프로그래밍 지원 자동 메모리 관리(Garbage Collection) 컴파일이란 특정 프로그래밍 언어를 기계가 이해할
조건문반복문조건문 : if문, switch문반복문 : for문, while문, do while문💡 조건식은 모두 boolean형의 조건식이 들어가야함! 조건식이 참이면 문장을 실행하고 밑 식을 실행하지 않고 빠져나감조건식이 거짓일 경우 참인 조건식을 찾을 때까지 쭉
배열계산기 프로그램 만들기동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조Ex. 7월 한달간 일별 최고 기온을 설정할 때double temp1 = 27.4; double temp2 = 30.1; double temp3 = 31.1; ...이렇게 총 31개의 변수를
1차원 배열 / 2차원 배열 / 가변 배열계산기 프로그램 만들기프로그래밍에서 필요한 데이터를 모아 속성(state)과 기능(behavior)을 가진 수많은 객체(object)들을 만들고 그 객체들 간의 상호작용을 통해 어떠한 기능을 구성하는 것하나의 역할을 수행하는
생성자내부 클래스인스턴스가 생성될 때 호출되는 인스턴스 변수 초기화 메서드 ( new 생성자(); )( 메서드이기 때문에 메서드 특징 그대로 가짐 -> 생성자도 오버로딩 가능 )모든 클래스에는 하나 이상의 생성자가 있어야함( 생성자가 없을 경우 컴파일러가 자동 생성 )
객체 지향의 4가지 원리 중 상송 / 캡슐화상속캡슐화다형성추상화상위 클래스와 하위 클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유하는 것 ( '확장되었다' )( 이 때, 하위 클래스 멤버의 개수 -> 상위 클래스와 비교했을 때 같거
객체 지향의 4가지 원리 중 다형성 / 추상화한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한 것메서드 오버라이딩과 메서드 오버로딩 또한 다형성의 한 예시조건 (1
열거형 (Enum)제네릭 (Generic)예외처리 (Exception Handling)상수(final)들의 집합여러 상수들을 보다 편리하게 선언하고 관리상수명의 중복을 피하고, 타입에 대한 안정성을 보장( 같은 효과를 낼 수 있는 다른 코드에 반해 훨씬 더 간결하고 가
📕 오늘 배운 내용! 컬렉션 프레임워크 List Set Map ✏️ 컬렉션 프레임워크 여러 데이터들을 그룹으로 묶어놓은 컬렉션을 다루는 데에 있어 편리한 메서드들을 미리 정의해놓은 것 특정 자료 구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을
애너테이션 (Annotation)람다식스트림 (Stream)파일 입출력특정 프로그램에게 어떠한 정보를 제공하기 위한 것💡 Comment와 Annotation (둘 다 주석)정보를 전달하는 대상에 차이가 있음Comment는 개발자가 개발하면서 참고하기 위해 (코딩할 때
스레드JVM실행 중인 애플리케이션데이터, 컴퓨터 자원, 스레드로 구성하나의 코드 실행 흐름Main 에서 실행되는 스레드메인 스레드 외에 별도의 스레드하나의 프로세스에 여러개의 스레드를 가지는 것 -> 멀티 스레드 프로세스멀티 태스킹(동시에 여러작업) 구현하는데 핵심적인
벌써 한달이다!!!과정을 처음 시작해서 컴퓨터 관련 용어 배우고, HTML 실습하고 그런 때가 어제같은데!!!너무 열심히 빠르게 달려와서 시간이 훅갔다.사실 처음 시작할 때는 '6개월이 언제 지나갈까?' 라고 생각했는데한달이 이렇게나 빠르게 지나간 걸 보니 더 어려운
재귀함수함수 내에서 자기 자신을 다시 호출하는 것➜ 자기자신을 계속 다시 호출하다보니 반복이 됨recursion() 메서드 호출하면 첫 실행문이 다시 호출되어 계속 반복모든 재귀함수는 반복문(for/while문)으로 쓸 수 있음Base case : 가장 작은 문제를 해
JSONJSON 실습데이터 교환을 위해 만들어진 객체 형태의 포맷많은 언어에서 범용적으로 사용객체의 키와 값을 ""로 감싸줘야함키와 값 사이, 키-값 쌍 사이에 공백 x보통 메세지를 전송하려면 수신자와 발신자가 같은 프로그램을 사요하거나, 문자열처럼 범용적으로 읽을 수
스택 (Stack)큐 (Queue)자료(데이터)를 체계적으로 정리하여 저장하고 활용하는 구조 그 자체구현 방식에는 제한 XStack, Queue, Tree, Graph 의 네가지 구조Java에서는 Stack을 Stack 클래스로 구현하여 제공But, Queue는 Que
📕 오늘 배운 내용! 스택 (Stack) 큐 (Queue) ✏️ 트리 (Tree) 하나의 뿌리로부터 가지가 사방으로 뻗은 형태가 나무를 거꾸로 뒤집어 놓은 듯한 형태 (단방향 그래프의 한 구조) ➜ 사이클이 없음 계층적 자료구조 ➜ 한 데이터가 바로 아래에 있는
트리 순회 (Tree traversal)특정 목적을 위해 트리의 모든 노드를 한 번씩 방문하는 것( 순서는 항상 왼쪽 ➜ 오른쪽 )전위 순회 (preorder traverse)➜ 루트 노드 -> 왼쪽 자식 노드 -> 오른쪽 자식 순서중위 순회 (inorder trave
의사코드 (pseudocode)시간복잡도 (Time Complexity)탐욕 알고리즘 (Greedy)코드 작성 전에, 일상 언어로 프로그램이 작동하는 논리를 먼저 작성하는 것자연어(일상 언어)와 프로그램 언어의 조합으로 사용해야함시간이 단축 됨디버깅에 용이함 (오류 발
순열 (permutation)조합 (Combination)팩토리얼 (factorial)순서에 상관 있게 요소 n개 중에 m개를 뽑는 경우의 수nPr = n! / (n - r)!순열의 모든 경우의 수를 나열할 경우➜ 반복문 개수 (중첩반복문) == 요소를 뽑는 개수(r)
📕 오늘 배운 내용! ✏️ 네이티브 애플리케이션 / 웹애플리케이션 ✔ 네이티브 애플리케이션 (Native-application) 특정 기기에 설치하여 특정 실행환경에 종속되어 사용하는 애플리케이션 >✔️ 장점 웹애플리케이션보다 빠름 애플리케이션이 설치된 기기의
📕 오늘 배운 내용! 네트워크 관련 내용 ✏️ 웹(WEB) 인터넷에서 제공되는 하이퍼텍스트 시스템 > ✔️ 하이퍼텍스트 문서안에 다른 문서의 위치정보 등을 포함하여 문서 간의 정보를 서로 연관 지어 참조 할 수 있는 문서 HTML로 대표되는 하이퍼텍스트 언어와 인
REST APIPostmanRepresentational State Transfer API웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식클라이언트와 서버 사이에서 데이터와 리소스를 요청
SQL / NoSQLSQL 기본 문법컴퓨터 시스템에 전자적으로 저장되는 조직화된 데이터 모음데이터를 조직화 하기 때문에 대량의 데이터 효율적으로 관리 가능Database Management System데이터베이스르 실질적으로 구현하기 위하여 사용하는 것Ex. MySQL
SQL 실습SQL 퀴즈도 풀고 ⬇️SQL 쿼리문의 빈칸을 채워넣는 연습도 해보고 ⬇️MY SQL을 설치하여 그 안에서 데이터베이스, 테이블 등을 만들어 직접 눈으로 확인도 해보았다! ⬇️CREATE DATABASE Practice CHARACTER SET UTF8; 로
데이터베이스 설계스키마 디자인 실습➜ 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명( 데이터베이스의 각 테이블의 구조와 테이블 간의 관계를 표현한 것이라고 생각하면 됨 )Ex. 수강신청 시스템 만들 때, 일단 전체적인 화면 구성(어떤
ERD 설계하기테이블간의 관계를 설명해주는 다이어그램데이터베이스의 구조를 한눈에 보기 위해 사용( 저번 시간에 한 스키마 디자인과 같은 것 )💡 ERD 와 스키마사실 구조적으로 같지만 ERD는 여러 관계 모델의 설계도라고 보면 되고,스키마는 ERD나 다른 다이어그램에
데이터베이스 정규화데이터의 중복을 없애 무결성을 유지하면서, 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정( 정규형이 높아질 수록 이상현상은 줄어듦 )릴레이션행과 열로 구성된 테이블참고 https://terms.naver.com/entry.nave
FrameworkFramework vs Library프로그래밍을 하기 위해 기본적으로 어떠한 틀, 구조를 제공하는 것Ex. Java에서의 Collection➜ Map, Set, List와 같은 인터페이스와 그 인터페이스를 구현한 구현체들의 집합( 그 구현되어 있는 구현
아키텍처Spring Framewokr 모듈 구성Spring Boot어떤 시스템의 전체적인 구성을 큰 그림으로 표현한 것( 하드웨어와 소프트웨어를 모두 포함 )소프트웨어의 구성을 큰 그림으로 표현한 것( 하드웨어 제외한 컴퓨터 내 모든 프로그램 )Ex. Java 플랫폼
📕 오늘 배운 내용! 아키텍처 Spring Framewokr 모듈 구성 Spring Boot 다른 방식으로도 의존성 주입이 가능하지만, 일반적으로는 생성자를 통한 의존관계 주입을 사용 생성자를 통해 의존성을 주입하게 되면, 실제로 스프링에서 의존성 주입을 도와주게
Java 기반 컨테이너(Container) 설정@Configuration - 설정파일에 작성 (우리가 사용하는 빈들의 정보와 의존성 정보가 어떻게 이루어져 있는지 쓰여있는 파일)\-> 이 해당 파일에 빈들의 정보가 담겨있어 !! 알려주는 것@Bean - 설정파일 내에
1\. 핵심 관심사 (Core Concerns)( 핵심 기능 )객체가 제공하는 고유의 기능Ex. 업무 로직2\. 횡단 관심사 (CROSS-CUTTING CONCERNS)핵심 기능을 보조하기 위해 여러 클래스에 걸쳐 공통으로 사용되는 부가적인 기능➜ 중복 코드 생김 (
벌써 또 두달째 !!!OMG 시간 무슨 일이야 시간 왜 이렇게 빨라이번 Section2 에서는 알고리즘, 네트워크, 데이터베이스, 스프링을 배웠다!정말.. 개념도 어렵고 많고 문제풀이도 힘들고 그런 시간이었지만..어찌저찌 이렇게 또 한달이 끝났다..!이번 회고는 KPT
서블릿(Servlet) API를 기반으로클라이언트의 요청을 편리하게 처리해주는 프레임워크Spring Web MVC 를 줄여서 Spring MVC( Spring MVC 프레임워크 라고도 부름 )✔️ 서블릿(Servlet)➜ 클라이언트의 요청을 처리하도록 특정 규약에 맞추
데이터 전송을 위한 용도의 객체( 요청 데이터와 응답 데이터에서 사용 )➜ 주로 클라이언트에서 서버 쪽으로 전송하는 요청 데이터를 전달 받을 때, 서버에서 클라이언트 쪽으로 전송하는 응답 데이터를 전송하기 위한 용도✔️ Request Body➜ 요청 데이터 중 body
API 계층에서 전달 받은 클라이언트의 요청 데이터를 기반으로 실질적인 비즈니스 요구사항을 처리하는 계층Spring의 DI(의존성 주입)를 이용하여 API 계층과 비즈니스(서비스) 계층을 연동하고,API 계층에서 전달받은 DTO 객체를 비즈니스(서비스) 계층의 도메인
@ExceptionHandler@RestControllerAdvice예외 Throw / CatchCustom Exception 애플리케이션에서 예외(Exception)가 발생했을 때, 내부적으로 Spring에서 예외를 처리하여 클라이언트의 응답으로 에러 메세지를 보내주
📕 오늘 배운 내용! ✏️ JDBC (Java Database Connectivity) Java 애플리케이션 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장/업데이트 하거나, 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는
📕 오늘 배운 내용! DDD (Domain Driven Design) ✏️ DDD (Domain Driven Design) 더 나은 애플리케이션 설계를 위한 도메인 위주의 설계 기법 모든 기능을 도메인 모델 위주로 돌아가게 설계하는 기법 >✔️ 도메인 (Doma
📕 오늘 배운 내용! DDD (Domain Driven Design) ✏️ JPA (Java Persistence API) Java 진영에서 사용하는 ORM(Object-Relational Mapping) 기술의 표준 사양(Specification) Jakarta
📕 오늘 배운 내용! JPA (Java Persistence API) 엔티티 매핑 ✏️ Spring Data JPA Spring Data 패밀리 기술 중 하나 ( Spring Data JDBC 도 이 중 하나 ) JPA 기반의 데이터 액세스 기술을 좀 더 쉽게 사
📕 오늘 배운 내용! ✏️ 트랜잭션(Transaction) 여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위 ( 플리케이션의 신뢰성이 깨지는 상황이 발생하면 트랜잭션이라고 부를 수 없습 ) 여러 개의 작업이지만 논리적으로는 마치 하나의 작업으로 인식해서
📕 오늘 배운 내용! 트랜잭션 분산 트랜잭션 ✏️ 트랜잭션(Transaction) 😜 실습 projects 폴더 내의 be-template-tx ( 트랜잭션 ) projects 폴더 내의 be-template-distributed-tx ( 분산 트랜잭션 ) gi
📕 오늘 배운 내용! ✏️ Mock not real, but intended to be very similar to a real situation, substance etc ( 말 그대로 진짜는 아니지만 진짜와 아주 비슷한 가짜) 목업(Mock-up) 실제 제품이
📕 오늘 배운 내용! ✏️ API 문서화 (Documentation) 클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URL(또는 URI), request body, query parameter 등)를 문서로 잘
📕 오늘 배운 내용! ✏️ Spring Boot 기반의 애플리케이션 소스 코드를 빌드하는 방법 ✔ IntelliJ IDE를 이용한 빌드 Spring Boot의 Gradle 빌드 툴을 이용하여 Gradle task 명령으로 빌드하는 방법 우측 상단의 [Grad
분명 세달째가 올까..? 생각했는데 벌써 이제 네달째만 남았다.이제 남은 한달과 나머지는 프로젝트라니 !!! 믿기지 않아( 회고 맨 처음에는 맨날 이러는 것 같다 ㅎ )이번 Section2 에서는 Spring Mvc에 대해 전반적으로 배우고 많은 실습들을 했다.양도 많
HTTPS해싱 (Hashing)쿠키 (Cookie)세션 (Session)웹 보안 공격HTTP + Secure(보안)( HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법 )대부분의 웹사이트의 경우
📕 오늘 배운 내용! ✏️ Spring Security Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authorization or 권한 부여) 기능을 지원하는 보안 프레임워크 ⠀ ( Spring MVC 기반 애플리케이션에 보안을
( 위 그림에서 2 / 3 화살표 방향 바뀜 )(1) 사용자가 보호된 리소스 요청(2) 인증 관리자 역할을 하는 컴포넌트가 사용자의 크리덴셜(Credential) 요청✔️ 사용자의 크리덴셜(Credential)➜ 해당 사용자를 증명하기 위한 구체적인 수단Ex. pass
📕 오늘 배운 내용! 세션 기반 인증 vs 토큰 기반 인증 JWT ✏️ 세션 기반 인증 서버 or DB에 인증된 사용자의 정보를 세션 형태로 세션 저장소에 저장 하는 방식 인증된 사용자의 상태를 유지하기 위한 전통적인 방식 ( 사용자의 고유 세션 ID가 클라이언트
OAuth 2OAuth 2 사용 애플리케이션 유형OAuth 2 인증 컴포넌트들의 역할OAuth 2 기본 동작 흐름Authorization Grant / Access Token / Scope사용자가 특정 서비스를 이용하기 위해 신뢰할 만한 벤더에게 대신 인증 처리를 위임
Frontend와 Backend 간의 OAuth 2 인증 처리 흐름Hello, OAuth 2 샘플 애플리케이션 구현 순서 ( SSR 방식 )OAuth 2 + JWT 를 이용한 샘플 애플리케이션 구현 ( CSR 방식 )① Resource Owner👉 웹 브라우저에서 G
리액티브 시스템리액티브 프로그래밍리액티브 스트림즈반응을 잘하는 시스템➜ 클라이언트의 요청에 반응을 잘하는 시스템➜ 클라이언트의 요청에 대한 응답 대기 시간을 최소화 할 수 있도록요청 쓰레드가 차단되지 않게 함으로써(Non-Blocking) 클라이언트에게 즉각적으로 반응
Reactor (Project Reactor)마블 다이어그램 (Marble Diagram)스케줄러(Scheduler)Operators리액티브 스트림즈 표준 사양을 구현한 구현체 중 하나리액티브한 애플리케이션으로 동작하는데 있어 핵심적인 역할을 담당하는 리액티브 프로그래
The reactive-stack web framework, Spring WebFlux, was added later in version 5.0.( from Spring 공식 사이트 )Spring 5부터 지원하는 리액티브 웹 애플리케이션을 위한 웹 프레임워크이를 사용해
클라우드 컴퓨팅 (Cloud Computing)DeployS3 (Simple Storage Service)RDS (Relational Database Service)3 Tier-Architecture 배포 전략인터넷(클라우드)을 통해 컴퓨팅 서비스를 제공하는 서비스Ex
도커 (Docker)가상화 vs 컨테이너다양한 종류의 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼하드웨어의 자원을 모두 가상화 하지 않고 프로세스들만을 격리시켜 빠르게 환경을 구축 가능➜ 실행 환경에 구애받지 않고 애플리케이션을 실행 가능
배포 자동화AWS Pipeline을 이용한 배포 자동화Github Actions를 통한 배포 Flow한번의 클릭 or 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것시간 절약휴먼 에러(Human Error) 방지✔️ 휴먼 에러 (Human Error)사람이
📕 오늘 배운 내용! ✏️ 😜 실습 🌈 느낀점
📕 오늘 배운 내용! ✏️ 😜 실습 🎄 To-Do App 만들기 - 기능 요구 사항 Create 할 일 목록을 등록할 수 있어야 함 Read 등록된 전체 할 일 목록을 조회할 수 있어야 함 등록되어있는 할 일의 특정 id를 입력하여 조회할
분명 세달째가 올까..? 생각했는데 벌써 이제 네달째만 남았다.이제 남은 한달과 나머지는 프로젝트라니 !!! 믿기지 않아( 회고 맨 처음에는 맨날 이러는 것 같다 ㅎ )이번 Section2 에서는 Spring Mvc에 대해 전반적으로 배우고 많은 실습들을 했다.양도 많
⬆️ 위는 Pre Project 결과물인 StackOverFlow를 클론한 페이지!⠀결과물은 Pre Project ⬅ 요기 이씀 !사실 프로젝트 전까지는 되게 겁먹어서 "프로젝트라구..? 내가..? 어떻게..?!" 막 이랬는데다 하고 보니 껌이네 ~ ㅋ( 사실 아님 ㅎ
⬆️ 위는 Pre Project 결과물인 StackOverFlow를 클론한 페이지! ⠀ 결과물은 Main Project ⬅ 요기 이씀 ! 사실 프로젝트 전까지는 되게 겁먹어서 "프로젝트라구..? 내가..? 어떻게..?!" 막 이랬는데 다 하고 보니 껌이네 ~ ㅋ (