-
Web Application
[Spring + React] 1. 설치 및 세팅
🔹 1. 전통적인 전체 페이지 렌더링 방식요청 → View(HTML) → 전체 페이지 렌더링사용자가 웹 페이지에 접근하거나 버튼을 클릭하여 서버에 요청을 보냄.서버(백엔드)는 요청을 처리하고, HTML을 포함한 전체 페이지를 렌더링하여 응답으로 보냄.브라우저는 받은 HTML을 해석하여 새로운 페이지를 표시하며, 기존 페이지는 새 페이지로 완전히 대체됨.✅ 특징요청이 발생할 때마다 전체 페이지가 새로고침됨.서버에서 HTML을 렌더링하여 반환하므로, 클라이언트 측에서 데이터 가공이 필요 없음.사용자 경험(UX)이 다소 떨어질 수 있음(새로고침 시 깜빡임 현상 발생).대표적인 방식: SSR(Server-Side Rendering)🔹 2. Ajax를 이용한 비동기 요청 & 부분 업데이트 방식View → 요청..
-
React.js
2. React App
✅ Vite로 자동 구성한 React AppVite를 사용하여 React 애플리케이션을 자동으로 구성하는 과정에 대해 설명합니다. Vite는 빠르고 효율적인 개발 환경을 제공하는 도구로, 기본 설정이 적용된 React 앱을 쉽게 생성할 수 있습니다.🔹 1. Vite설명: Vite는 현대적인 웹 애플리케이션을 위한 빌드 도구로, 빠른 시작과 핫 모듈 교체(Hot Module Replacement, HMR)를 지원합니다.명령어: 아래 명령어를 사용하여 Vite를 설치하고 새로운 React 애플리케이션을 생성합니다.npm create vite@latest🔹 2. 프레임워크 선택설명: 애플리케이션의 프레임워크로 React를 선택합니다.옵션: 설치 과정에서 react를 선택합니다.🔹 3. 버전 선택설명: J..
-
React.js
1. 리액트 기술적 특징
기술 특징컴포넌트 기반 UI 렌더링 (독립적인 컴포넌트로 구조화(모듈화) 가능)화면 업데이트 구현이 비교적 쉬움 (상태, 속성의 변경 감지시 재렌더링)선언형 프로그래밍 : 과정은 생략하고 목적만 간결히 명시하는 방법명령형 프로그래밍 : 절차 중심적으로, 프로세스를 상세히 정의하는 방법더보기React의 선언형 프로그래밍과 비교할 만한 반대 개념은 명령형 프로그래밍입니다. 두 프로그래밍 방식은 코드 작성 방식과 사고방식에서 차이가 있습니다. 아래에서 각각의 개념을 설명하고, React와 명령형 프로그래밍의 차이점을 비교해 보겠습니다.1. 선언형 프로그래밍 (Declarative Programming)특징:무엇(What)을 해야 하는지를 설명합니다.결과 중심적으로, 최종 상태나 목표를 명확히 기술하며, 그 목..
-
React.js
리액트 공부하기
https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%EB%A6%AC%EC%95%A1%ED%8A%B8/dashboard 한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지 강의 | 이정환 Winterlood - 인프런이정환 Winterlood | 개념부터 독특한 프로젝트까지 함께 다뤄보며 자바스크립트와 리액트를 이 강의로 한 번에 끝내요. 학습은 짧게, 응용은 길게 17시간 분량의 All-in-one 강의!, 리액트, 한 강의로www.inflearn.com
-
Server Programming
MVC -> MSA
MVC에서 MSA로의 마이그레이션은 단순한 아키텍처 변경이 아니라, 시스템 구조 전반을 재설계하는 작업입니다. 이 과정은 기존에 모놀리식 아키텍처로 구성된 시스템을 마이크로서비스 아키텍처(MSA)로 전환하는 작업이기 때문에 많은 요소들이 필요하고, 각 단계에서 신중히 고려해야 할 부분이 많습니다.1. MSA로의 마이그레이션을 위한 기초 지식MVC (Model-View-Controller)와 MSA (Microservices Architecture)의 차이MVC (Model-View-Controller):모놀리식 애플리케이션의 한 형태로, 시스템의 모든 기능이 단일 애플리케이션 내에서 동작합니다.모든 요청은 동기적으로 처리되며, 애플리케이션은 하나의 서버에서 관리됩니다.장점: 개발 초기에는 빠르게 개발할 ..
-
Server Programming
메시지 브로커의 레디스, 이벤트 브로커의 카프카
이벤트 브로커(Event Broker)와 메시지 브로커(Message Broker)는 기능적으로 유사한 개념이지만, 용도와 초점이 약간 다릅니다. Kafka와 Redis는 각각 특정 목적에 최적화되어 있기 때문에, 이 두 가지 역할을 수행하는 방식에서 차이가 있습니다. 이를 통해 Kafka와 Redis의 차이점도 명확히 이해할 수 있습니다.이벤트 브로커(Event Broker)개념이벤트를 기반으로 데이터를 전달하고, 이벤트 로그를 저장하거나 스트리밍하는 역할을 합니다.이벤트는 상태의 변경 또는 특정 작업의 발생을 나타냅니다.예: 사용자 클릭, 주문 생성, 결제 완료 등.이벤트 브로커는 보통 이벤트를 생성하고, 저장하며, 소비자에게 전달하는 기능을 모두 포함합니다.특징이벤트 스트리밍:이벤트 데이터가 지속적..
-
Python
Numpy
NumPy는 강력한 수치 계산 라이브러리로, 다양한 기능을 제공합니다. 여기서는 NumPy의 주요 메서드와 기능들을 정리하였습니다. NumPy는 주로 배열 생성, 배열 조작, 수학적 연산 및 선형 대수, 통계, 그리고 파일 입출력 관련 메서드를 포함하고 있습니다.1. 배열 생성numpy.array(): 배열 생성.numpy.zeros(): 모든 요소가 0인 배열 생성.numpy.ones(): 모든 요소가 1인 배열 생성.numpy.empty(): 초기화되지 않은 배열 생성.numpy.arange(): 주어진 범위의 값으로 배열 생성.numpy.linspace(): 주어진 구간을 등간격으로 나누어 배열 생성.numpy.eye(): 단위 행렬 생성.numpy.random.rand(): 균등 분포에서 랜덤 배..
-
Python
파이썬 알고리즘
파이썬 자바 차이점개념자바파이썬주의할 점변수 선언int a = 5;a = 5파이썬은 타입을 명시하지 않음.자료형String, int, double 등str, int, float 등자료형 변환 시 명시적으로 변환해야 함.배열 및 리스트int[] arr = new int[5];arr = [0] * 5파이썬의 리스트는 동적 크기.반복문for (int i = 0; i for i in range(n):파이썬의 range()는 마지막 숫자는 포함하지 않음.조건문if (a > b) {}if a > b:중괄호 대신 콜론과 들여쓰기를 사용.클래스 정의class MyClass {}class MyClass:self를 첫 번째 매개변수로 명시해야 함.메서드 정의void myMethod(int a) {}def my_method..
-
IT
Clean Architect (1) 프로그래밍 패러다임
소프트웨어 아키텍처의 목표-필요한 시스템을 만들고 유지보수하는 데 투입되는 인력의 최소화아키텍처와 설계-고수준의 구조(결정사항)과 저수준의 세부사항아키텍처는 구현과 측정을 통해 증명해야 가는 가설이다.-톰 길브행위와 구조-프로그래머가 지켜야할 두 가지 가치소프트웨어 존재 가치-기계의 행위를 쉽게 변경하기 위함-필요조건 :(1) 변경 범위에 비례- 모듈화, 캡슐화(정보은닉)(2) 변경사항의 행태에는 영향을 받지 않아야함- TDD개발자가 이해관계자로서 지켜야할 가치-긴급하지 않지만 중요한-긴급하지만 중요하지 않은의 투쟁에서 아키텍처의 중요성이라는 가치를 지키는 것프로그래밍 패러다임1. 구조적 프로그래밍- 제어흐름의 직접적인 전환에 대한 규칙 부과-> 조건에 따라 실행흐름 직접 제어2. 객체지향 프로그래밍- ..
-
JavaScript
Nest.js
클라이언트/서버 구조를 구현하기 위해 사용하는 프로토콜 혹은 아키텍쳐REST API웹 소켓RPCGraphQLREST API, 웹소켓, RPC, GraphQL은 모두 서버와 클라이언트 간의 통신을 위해 사용되는 프로토콜이나 아키텍처입니다. 각기 다른 장단점과 사용 사례가 있습니다. 아래에서 각각의 차이점을 설명하겠습니다.REST API (Representational State Transfer)아키텍처 스타일: 클라이언트와 서버 간의 상태 정보를 주고받는 구조. 자원(Resource)을 URI로 표현하며, HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 자원을 처리.데이터 형식: 주로 JSON이나 XML을 사용.장점:표준화된 HTTP 프로토콜 사용.캐시를 통해 성능 향상 가능.stat..
-
Java 알고리즘 인프런
자바 알고리즘 복습 (2)
1. 학급 회장(해쉬)import java.util.*; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); int cnt = in.nextInt(); in.nextLine(); char[] arr = new char[cnt]; arr= in.nextLine().toCharArray(); HashMap map = new HashMap(); for(int i=0;imap){ char c=' '; int max=Integer.MIN_VALUE; for(Map.Entry entry : map.entrySet()){ if(entr..
-
Java 알고리즘 인프런
자바 알고리즘 입문 복습 (1)
1. 문자찾기import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); String s = sc.nextLine(); char c=sc.nextLine().charAt(0); // Main sol = new Solution();// System.println(sol(c,s)); System.out.println(Solution(c,s)); } public static int Solution(char c, String str){ int answer = 0; for(int i=0;i2. 대소문자 변환impo..
-
SQLP
2. 인덱스 기본
1. 인덱스 구조 및 탐색 2. 인덱스 기본 사용법 3. 인덱스 확장기능 사용법 인덱스 구조 (일반적인 DBMS의 인덱스는 B*트리) : 어떤 값으로 탐색하더라도 인덱스 루트에서 리프 블록까지 도달하기까지 읽는 블록 수가 같은 트리 B 트리, B+ 트리, B* 트리는 모두 데이터베이스나 파일 시스템에서 사용되는 인덱스 구조로, 데이터를 효율적으로 검색하고 관리하는 데에 활용됩니다. 각각의 트리는 특정한 용도나 성능 특성에 따라 설계되었으며, 목표하는 기능과 성능을 달성하기 위해 트리의 구조와 동작 방식에 차이가 있습니다. 이제 각 트리의 특징과 차이를 살펴보겠습니다. 1. B 트리 (B-Tree) - B 트리는 여러 자식을 가지는 자가 균형 이진 트리로, 각 노드에는 키와 그에 대응하는 자식 노드를 저장..
-
SQLP
1. SQL 처리 과정과 I/O
SQL 파싱과 최적화 SQL 공유 및 재사용 데이터 저장 구조 및 I/O 메커니즘 라이브러리 캐시에 없는 SQL 실행 = 하드 파싱 = 내부 프로시저를 만드는 과정 1) 옵티마이저가 최적화 2) 로우 소스 생성 모든 SQL을 소프트 파싱하기 어려운 이유 -> 이름 없는 SQL 문제 -> 바인드 변수의 중요성 -> 하드 파싱을 최소화하기 위함 SQL이 느린 이유와 DBMS가 이를 극복하는 방법 CPU는 동시에 하나의 작업만 수행하므로 느린 디스크 I/O 시간 동안 프로세스가 기다리기 때문에 -> I/O 병목이 발생하므로 SQL이 느리게 된다. -> 디스크 I/O를 최소화 하는 방법이 필요 -> 이를 위해 설계된 데이터베이스의 저장 구조 데이터베이스 저장 구조 테이블 스페이스 -> 여러 세그먼트 -> 확장가..
-
ADsP
ADsP 합격
-
Node.js
노드의 기능
REPL Read Eval Print Loop $node로 입력해서 >로 바뀌면 자바스크립트 입력 자바스크립트 코드 실행 $node [자바스크립트 파일 경로] 코드 -> 모듈화 (CommonJS 모듈,ECMAScript 모듈) 브라우저의 this와 다른 노드의 this 노드에서 최상위 스코프의 this는 module.exports를 가리킨다. 브라우저에서는 window 객체를 가리킨다. 노드에서 함수 선언문 내부의 this는 global 객체를 가리킨다. 브라우저에서는 window 객체를 가리킨다. 노드의 내장 객체 CommonJS 모듈 require로 모듈 불러오기 module.exports로 모듈 한번에 내보내기 exports 객체로 각각의 변수를 대입하기 exports객체와 module.export..
-
ADsP
3과목. 데이터 분석 개념원리
목차 데이터 분석 전반의 이해 히스토그램의 개념 평균, 분산, 표준편차 연속확률분포 가설 검정 표본 추출 가설 검정 - t검정 회귀분석 오차와 잔차 최고제곱법으로 회귀계수 추정 SSE (Error Sum of Squares; 잔차 제곱의 합)와 MSE (Mean Squared Error; 잔차 제곱의 평균) 자유도 SSR (Regression Sum of Sauares; 회귀 제곱의 합) MSR (Mean Squared Regression; 회귀 제곱의 평균) SSE와 MSE, SSR과 MSR 스케일링-표준화 목차 R기초와 데이터 마트 R기초 데이터 마트 결측값 처리와 이상값 검색 통계분석 통계학 개론 기초 통계분석 다변량 분석 시계열 예측 정형 데이터 마이닝 데이터마이닝 개요 분류분석 군집분석 연관분석..
-
TypeScript
타입스크립트 제네릭 (+상한 제한)
//제네릭 //:클래스나 함수, 인터페이스를 다양한 타입으로 재사용 가능 // -> 실제로 사용할때 타입을 선택할 수 있다. //즉, 특정한 타입을 고정하지 않고 나중에 실제로 사용될 타입을 동적으로 지정 //function getSize(arr):number{ //에러 발생 : 타입을 명시하지 않았기 때문에 // function getSize(arr:number[]):number{ //-> 숫자배열이라고 타입 명시 -> 문자열로도 이 메서드를 쓰고 싶은데? //(1) 함수 오버로드 // 함수 오버로드 정의 function getSize(arr: string[]): number; function getSize(arr: number[]): number; function getSize(arr:number[]..
-
TypeScript
타입스크립트 클래스
// 클래스 // class Car{ // constructor(color){ // this.color = color; // } // start(){ // console.log("start"); // } // } // const bmw2 = new Car("red"); //자바스크립트에서의 클래스 class Car{ color:string; //1. 멤버변수는 미리 선언해줘야한다. constructor(color:string){ //2. 매개변수 타입 명시 this.color = color; } start(){ console.log("start"); } } const bmw2 = new Car("red"); //타입스크립트에서의 클래스. - 멤버변수 미리 선언하는 방식 class Car2{ constru..
-
TypeScript
타입스크립트 리터럴, 유니온/교차타입
//리터럴, 유니온/교차타입 //JS 변수 선언 타입 //const : 상수 //let : 변수 const userName1 = "Bob"; //문자열 "Bob"이 타입 - 문자열 리터럴 타입 let userName2:string|number ="Tom"; //문자열이 타입 userName2=3; //숫자도 들어가게 하려면 선언시에 타입을 2개로 명시 //enum과 유사한 타입 type Job = "police" | "developer" | "teacher"; interface User6{ name : string; job : Job; } const user7:User6={ name :"Bob", job: "developer" }; //유니온 타입 interface HighSchoolStudent{ na..
-
TypeScript
타입스크립트 함수
function add2(num1: number, num2: number):number { console.log(num1+num2); return num1+ num2; } function add3(num1: number, num2: number):void { console.log(num1+num2); } function isAdult2(key:number):boolean{ return age>19; } //인터페이스처럼 함수의 매개변수도 옵셔널로 지정 가능 (optional parameter; 선택적 매개변수) function hello(name?:string){ //function hello(name:string){ return `Hello, ${name||"world"}`; //name이 없으면 wo..
-
Vanila
자바스크립트 call, apply, bind (+ 스프레드 연산자, 나머지 매개변수)
함수 호출 방식(어디서, 어떻게)과 관계없이 this 지정하는 방법 : call, apply, bind call(this로 사용할 매개변수, ...매개변수: 호출한 함수에 전달할 매개변수) : 일반적인 함수와 같이 매개변수를 직접 받는다. call에 this로 사용할 객체를 파라미터를 담아서 함수를 호출하면 해당 함수가 주어진 객체의 메서드인 것처럼 사용 가능 즉, call의 첫 번째 매개변수: this로 사용할 값, 그 외의 매개변수 : 호출하는 함수로 전달 (1) this.name이 mike, tom이 됨 (2) update에 this로 사용할 매개변수 mike 전달, 나머지는 호출할 함수로 전달 1999, 'singer apply(this로 사용할 매개변수, 배열 [ ]) : 두 번째 매개변수를 배..
-
TypeScript
타입스크립트 DOM
타입스크립트는 html파일 내에서 직접 사용 불가 -> 터미널에서 변환 후 첨부 tsc -w -> ts를 js로 컴파일 index.html 안녕하세요 링크 버튼 tsconfig.json { "compilerOptions": { "target": "ES5" ,"module": "commonjs" ,"strictNullChecks": true // ,"strict": true //strict 모든 옵션 } } index.ts //안녕하세요 let 제목 = document.querySelector('#title'); //제목.innerHTML = '반가워요'; //자바스크립트 문법 - union type //: 타입이 명확하지 않기 때문에 (null 가능) //if(제목!=null){ if(제목 instanc..
-
TypeScript
타입스크립트 인터페이스 (구현과 상속)
let user:object; //객체 생성 user ={ name : 'xx', age : 30 } //console.log(user.name); //에러발생 - object에는 특정 속성값에 대한 정보가 없기 때문에 //: 프로퍼티를 사용해 객체를 사용하기 위해서는 인터페이스 사용해야 한다. interface User{ name : string; age : number; gender? : string; readonly birthYear? : number; } let user2 : User={ name : 'xx', age : 30 } let user3 : User={ name : 'xx', age : 30, gender : 'male' } let user4 : User={ name : 'xx', ag..
-
TypeScript
타입스크립트 기본타입
//타입명시 let car:string ='bmw'; car = 'benz'; //car= 3; //에러 발생 //타입추론 let car2='bmw'; //car2는 string 타입 //기본 타입의 종류 let age:number = 30; let isAdult:boolean = true; let a = [1,2,3]; let a2:number[] = [1,2,3]; let a3:Array = [1,2,3]; let week1 = ['mon', 'tue', 'wed']; let week2:string[] = ['mon', 'tue', 'wed']; let week3:Array = ['mon', 'tue', 'wed']; //week1.push(3); //에러발생 //튜플 let b:[string, nu..
-
Vanila
프론트엔드 자바스크립트
AJAX AXIOS 라이브러리 GET 요청 [프로미스 지원 함수] 2. POST 요청 및 FormData 전송 3. 주소창 한글 [인코드 : encodeURIComponent, 디코드 : decodeURIComponent] : 아스키문자로 표현 4. HTML 태크에 데이터 저장하기 위해 data attribute와 dataset : 서버의 데이터 -> 프론트엔드로 전송 목적 data-속성명으로 접근 dataset.'속성명'에 값 넣으면 속성이 생김 dataset.monthSalary = 10000 -> data-month-salary = "10000" querySelector: 특정 CSS 선택자에 일치하는 첫 번째 요소를 반환하는 메서드 getElementById: 주어진 ID에 해당하는 요소를 반환...
-
Vanila
자바스크립트의 실행 순서 (호출 스택과 이벤트 루프)
자바스크립트 자바스크립트는 브라우저위에서 동작하기위해 탄생한 스크립트언어이다. -> Node.js가 크롬 엔진 V8를 내장함으로써 더이상 브라우저에 종속하지 않은 언어로 사용할 수 있도록 함 스크립트 언어 : 특정 작업을 자동화하거나 특정 애플리케이션에서 사용할 목적으로 사용되는 언어 스크립트 언어의 가장 큰 특징은 변수의 데이터 타입을 런타임에 결정한다는 것이다. [동적 타이핑] 하지만 이러한 동적 타이핑의 문제를 해결하기 위해 타입 스크립트가 등장. -> 컴파일 타임에 에러를 찾고, 객체지향언어의 특징을 가짐 자바스크립트의 실행 순서 호출 스택 : 함수 호출을 기록하는 자료구조로, 함수가 호출되면 해당 함수의 정보가 스택에 쌓이고, 함수가 반환되면 스택에서 제거 테스크큐 : 비동기 작업의 콜백 함수들..
-
ADsP
3과목. 데이터 분석
3과목. 데이터 분석 1장. 데이터 분석 개요 데이터 분석 기법의 이해 2장. R 프로그래밍 기초 R 소개 R 기초 입력과 출력 데이터 구조와 데이터 프레임 데이터 변형 3장. 데이터 마트 데이터 변경 및 요약 데이터 가공 기초 분석 및 데이터 관리 4장. 통계분석 통계분석의 이해 기초 통계 분석 회귀분석 시계열 분석 다차원 척도법 주성분분석 5장. 정형 데이터 마이닝 데이터 마이닝의 개요 분류분석 앙상블분석 인공신경망분석 군집분석 연관분석 1장. 데이터 분석 개요 데이터 분석 기법의 이해 데이터 처리 과정 분석 데이터 : 데이터웨어하우스 (DW), 데이터마트 (DM) +) 기존 운영시스템에서 가져오거나 운영데이터저장소(ODS)에서 정제된 데이터를 가져와 DW의 데이터와 결합 시각화 기법 공간분석 탐색적..
-
ADsP
2과목. 데이터 분석 기획
2과목. 데이터 분석 기획 1장. 데이터 분석 기획의 이해 분석 기획 방향성 도출 분석 방법론 분석 과제 발굴 분석 프로젝트 관리 방안 2장. 분석 마스터 플랜 마스터 플랜 수립 프레임워크 분석 거버넌스 체계 수립 1장. 데이터 분석 기획의 이해 1절. 분석기획 방향성 도출 분석 기획의 특징 분석 기획 데이터 사이언티스트의 역량 분석 대상과 방법 분석의 대상 Known / Un-Known : Optimization / Insight 분석의 방법 Known / Un-Known : Solution / Discovery 목표 시점별 분석 기획 방안 당면한 분석 주제의 해결 (과제단위) 지속적 분석 문화 내재화 (마스터 플랜 단위) 속도와 테스트 정확성과 전개 빠르게 얻기 멀리 보기 문제해결하기 문제정의(파악)..
-
ADsP
1과목. 데이터의 이해
1과목. 데이터의 이해 데이터의 이해 데이터와 정보 데이터베이스 정의와 특징 데이터베이스 활용 데이터의 가치와 미래 빅데이터의 이해 빅데이터의 가치와 영향 비즈니스 모델 위기 요인과 통제 방안 미래의 빅데이터 가치 창조를 위한 데이터 사이언스와 전략 인사이트 빅데이터 분석과 전략 인사이트 전략 인사이트 도출을 위한 필요 역량 빅데이터 그리고 데이터 사이언스의 미래 1장. 데이터의 이해 1절. 데이터와 정보 데이터의 유형 정성적 데이터 정량적 데이터 지식경영의 핵심 이슈 암묵지 - 공통화, 내면화 형식지 - 표출화, 연결화 DIKW 피라미드 데이터 -> 정보 -> 지식 -> 지혜 2절. 데이터베이스 정의와 특징 데이터베이스 정의 EU 국내 저작권법 국내 컴퓨터용어사전 데이터베이스 특징 통합된 데이터 저장된..
-
BigData Analysis
빅데이터분석기사 과목 및 합격기준
필기 + 실기 시험시간 : 90분 각 과목 8문제 미만 시 과락 합격기준 : 60점 이상 과목명 문항수 배점 필기 빅데이터 분석기획 20 25 빅데이터 탐색 20 25 빅데이터 모델링 20 25 빅데이터 결과 해석 20 25
-
ADsP
Chapter 01. 데이터의 이해
1. 데이터와 정보 2. 데이터베이스 3. 데이터베이스 활용 데이터의 어원 : 라틴어 dare 주어진것 Data Drivien Decision Making : 데이터 주도(기반) 의사결정 1. 분류 정성적 데이터 : 텍스트나 추상적 묘사로 이루어진 데이터 정량적 데이터 (=계량적 데이터) : 수치로 이루어진 데이터 2. 유형 정형 데이터 : 데이터의 구조가 정해진 데이터 -> 관계형 데이터베이스, 스프레드 시트의 데이터 구조는 테이블 (연산이 가능) 반정형 데이터 (=정형 데이터의 특성과 비정형 데이터의 특성을 모두 가진 데이터) : 형식과 구조가 유연하지만 연산이 불가능한 파일 형식의 데이터로 스키마 정보를 함께 담는다. -> JSON, XML, HTML (연산이 불가능) 비정형 데이터 : 형식이 정해..
-
SQLP
SQLP 과목 변경
- 1과목 데이터 모델링의 이해(SQLP, SQLD 공통) - 2과목 SQL 기본 및 활용(SQLP, SQLD 공통) - 3과목 SQL 고급활용 및 튜닝(SQLP) o 검정방법 : 전문가(SQLP) 필기 및 개발자(SQLD) - SQL 전문가(SQLP) - SQL 개발자((SQLD) □ 적용 시기 o 2024년 제50회 전문가(SQLP) 및 제52회 개발자(SQLD)부터 적용 출처 : 데이터자격검정
-
ADsP
ADsP 과목과 합격 기준
필기 총 50문제 과락 존재 각 과목별 40% 합격기준 60점 이상 시험시간 90분 구분 과목명 객관식 단답형 배점 필기 데이터 이해 8문제 2문제 20 데이터 분석 기획 8문제 2문제 20 데이터 분석 24문제 6문제 60 2024년부터 변경 o 검정방법 : 준전문가(ADsP) 출처 : 데이터자격검정
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 8. 과정 종료 회고
서론 패스트캠퍼스 백엔드 개발자 부트캠프에 참여하고, 기자단을 시작하면서 아래와 같이 7개의 글을 작성했습니다. 1. 2개월 회고와 앞으로의 계획 2. 그룹 스터디 워크샵 3. 서버의 진화 과정과 보안 4. 상품 주문 서비스 API 프로젝트 5. 기자단 중간 회고 6. 미니 프로젝트 회고 7. 파이널 프로젝트 (+ 취업 성공) 이번 글은 패스트캠퍼스 백엔드 개발자 부트캠프 관련 글로는 마지막으로, 과정 수료 & 취업 성공 후기를 작성하려고 합니다. 본론 패스트캠퍼스 백엔드 개발자 부트캠프는 온라인 과정으로 처음에 약 35명의 수강생으로 시작해 중간에 포기하신 분들도 많고, 취업을 하신 분들이 계셔서 지금은 23명의 수강생이 수료를 앞두고 있습니다. 국비지원 과정이다 보니 아무래도 본인돈이 들어가지 않다고..
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 7. 파이널 프로젝트 (+ 취업 성공)
목차 개요 진행 과정 진행 상황 향후 계획 마무리 개요 패스트 캠퍼스의 PM, UX/UI, 프론트엔드, 백엔드 과정 수강생들이 참여하는 기업연계 프로젝트에 대한 요약과 진행 상황을 기록했습니다. 이 프로젝트를 통해 이커머스 분야에서의 경험을 쌓고자 다양한 기업의 프로젝트 중 3D 에셋 스토어를 선택했습니다. 데일리 스크럼을 통해 개발 진행 상황을 체크하며, 수요일마다 매니저와의 회의를 통해 주간 개발 진행 상황을 공유하였습니다. 또한, 목요일마다 기업과의 소통을 통해 기업이 원하는 요구사항을 정확히 이해하도록 노력하였습니다. 진행 과정 프로젝트는 다음과 같은 주요 활동으로 진행되었습니다: 1. 팀 구성: - PM, UX/UI, 프론트엔드, 백엔드 과정 수강생들이 팀을 구성하였습니다. - 각 팀원은 자신의..
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 6. 미니 프로젝트 회고
개요 주요기능 🔐 로그인 / 회원가입 / 유저 관리권한 JWT 토큰 발급을 이용한 로그인 구현 user/admin api 구분 회원가입시 가입 요청대기 📇 연차 / 당직 신청 날짜 선택 및 연차/당직 신청 연차 보유개수보다 신청 연차일이 더 많으면 신청불가 📨 연차 / 당직 승인 Admin결재 -> 승인/반려 승인시 연차 보유개수 다시 한 번 검증, 문제 없다면 신청일 만큼 보유개수에서 차감 승인 리스트 검색 가능 🗓️ 모든 유저 연차/당직 월별 조회 역할 프로젝트 설계 및 확장 CI/CD, 로깅 등 인프라 구축 자동화 스크립트 작성을 통해 GitHub Actions을 이용한 CI/CD Docker를 통해 컨테이너화한 이미지로, EC2에서 Docker Compose 수행을 통해 클라우드 네이티브 환경의 ..
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 5. 기자단 중간 회고
지난 기자단 활동을 돌아보며 백엔드 개발자로서의 성장과 경험에 대해 회고해보고자 합니다. 이 기간 동안 저는 패스트 캠퍼스의 백엔드 개발자 과정에 참여하여 다양한 프로젝트와 공부를 진행하였습니다. 이를 통해 제 실력을 향상시키고 많은 것을 배우게 되었습니다. https://github.com/MiniTeam6/MiniProject_BE GitHub - MiniTeam6/MiniProject_BE: 연차/당직 프로젝트 백엔드 연차/당직 프로젝트 백엔드. Contribute to MiniTeam6/MiniProject_BE development by creating an account on GitHub. github.com 첫 번째로, 프로젝트 경험을 통한 성장입니다. 기자단 활동 중에 저는 실제 업무와 유..
-
BackEnd Project
138일자 - TIL
자료구조 & 알고리즘 GitHub - ji-hoooon/datastructureandalgorithms: Data Structure 구현 및 Algorithms 작성 Data Structure 구현 및 Algorithms 작성. Contribute to ji-hoooon/datastructureandalgorithms development by creating an account on GitHub. github.com 1. 완전 탐색 15651번. N과 M (3) 중복순열 : 중복을 허용해서 순서 있게 나열하기 15649번. N과 M (1) 순열 : 중복없이 순서 있게 나열하기 155652번. N과 M (4) 중복조합 : 중복을 허용해서 고르기 15650번. N과 M (2) 조합 : 중복없이 고르기 14..
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 4. 상품 주문 서비스 API 프로젝트
상품 주문 서비스 프로젝트 목차 프로젝트 간단 요약 사용한 기술 스택 프로젝트 정보 프로젝트 구조 프로젝트 설명 구현한 기능 설명 개선해야할 점 프로젝트 간단 요약 상용 가능한 상품 주문 서비스 API를 만들기 위한 프로젝트 REST API로 요청과 응답을 JSON으로 처리 스프링부트로 MVC 처리 스프링 시큐리티를 이용해 권한과 인가 처리 JWT을 이용한 토큰 기반 인증 처리 Spring Data JPA로 영속 계층 처리 사용한 기술 스택 Spring Boot Spring Security Spring Data JPA MySQL JWT JUnit 프로젝트 정보 | 진행기간 | 목표 | | --- | --- | --- | | 2023-04-092023-04-10 | 프로젝트 설계 및 기본 구현 | | 20..
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 3. 서버의 진화 과정과 보안
개요 서버의 진화과정을 살펴보면서 궁극적으로 추구하는 방향에 대해서 탐구한다. 성능이 좋고, 안정적인 서버의 개발을 위해 필요한 기술들이 어떤 것들이 있는지 알아보고 이를 학습한다. 프로젝트를 수행하기 전, 좋은 서버를 개발하기 위해 필수 조건에 충족하도록 프로젝트 가설계를 수행한다. 목차 서버의 진화 과정 비슷하지만 다른 개념 정리 대표적인 악의적 요청 방식 스프링 부트의 발전 과정 악의적인 요청 방지 방법 결론 https://github.com/ji-hoooon/sessionandcookie GitHub - ji-hoooon/sessionandcookie: 세션과 쿠키 학습을 위한 리포지토리 세션과 쿠키 학습을 위한 리포지토리. Contribute to ji-hoooon/sessionandcoo..
-
BackEnd Project
108일자 - TIL
오늘 한것 DFS / BFS 문제 풀이 GitHub - ji-hoooon/datastructureandalgorithms: Data Structure 구현 및 Algorithms 작성 Data Structure 구현 및 Algorithms 작성. Contribute to ji-hoooon/datastructureandalgorithms development by creating an account on GitHub. github.com 자료구조 & 알고리즘 DFS & BFS 인프런 기초 (재귀함수, 트리, 그래프) 재귀함수 (스택프레임) 이진수 출력 (재귀 함수) 팩토리얼 피보나치 재귀 (메모이제이션) 이진트리 순회 (DFS) 부분집합 구하기 (DFS) 이진트리 레벨탐색 (BFS) 송아지 찾기1 (BFS..
-
BackEnd Project
101일차 -TIL
오늘 한것 스프링부트 시큐리티, JWT 완강 Junit5을 이용한 Bank 프로젝트 시작 DFS, BFS 기초를 위한 Recusive, Tree, Graph 복습 JWT을 위해 알아야할 개념 (1) 세션 JWT을 위해 알아야할 개념 (2) TCP JWT을 위해 알아야할 개념 (3) CIA JWT을 위해 알아야할 개념 (4) RSA JWT을 위해 알아야할 개념 (5) RFC 문서 JWT 기본 구조 내일 할것 스프링 - 지연로딩과 엔티티 연관관계 DFS, BFS 문제 풀기
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 2. 그룹 스터디 워크샵
목차 그룹 스터디 워크샵 개요 발표 내용 그룹별 발표 요약 워크샵 개요와 준비 과정 워크샵 개요 학습을 통해 필요하거나 중요하다고 느낀 인사이트를 공유한다. 그룹 스터디를 통해 학습한 내용을 발표를 준비하며 정리한다. 준비 과정 워크샵 주제를 선정하기 위해 논의 발표를 통해 전달하고자 하는 방향 설정 멘토링을 통해 주제와 방향에 대해서 피드백 발표 PPT와 스크립트 작성 실제 발표 전 리허설 진행 선정 주제 DispatcherServlet과 스프링부트의 동작 원리 그리고 스프링과의 차이점 주제 선정 이유 백엔드 개발을 위해 선택한 스프링 프레임워크를 그룹 스터디를 통해 익히면서 얻은 인사이트를 함께 공유하기 위해서 발표 내용 DispatcherServlet Servlet 기존의 자바 웹 애플리케이션을 개..
-
BackEnd Project
88일차 - TIL
오늘 한것 모의 코딩테스트 풀하우스 발판 밟고 벽 넘어가기 짝지어 제거하기 사다리 타기 게임 조작 2,3번 2솔 1번은 DFS외엔 솔루션이 떠오르지 않았고, DFS로 풀어보려다가 막혔다 4번은 백트레킹으로 풀어보려고 했으나 구현부분에서 어려움을 겪었다. 내일 할것 그룹 스터디 워크샵 스프링 부트 동작 원리에 관한 발표 수행 스프링과 스프링 부트의 오해와 진실 스프링 부트의 진화과정 스프링 부트의 특징 DI와 Opinionated 스프링 부트에서의 run()
-
BackEnd Project
77일차 - TIL
오늘 한것 토비의 스프링 부트 DI와 테스트, 디자인 패턴 자동 구성 기반 애플리케이션 내일 할것 토비의 스프링부트 자동 구성 기반 애플리케이션 조건부 자동 구성 스프링을 위한 자바의 고급
-
BackEnd Project
[패스트캠퍼스 백엔드 개발자 부트캠프] 1. 2개월 회고와 앞으로의 계획
패스트캠퍼스 백엔드 부트캠프에 지원한 동기 클론 코딩하면서 부족하다고 느꼈던 스프링 프레임워크 원리의 이해와 활용법을 익히기 위해 커리큘럼을 통해 부족한 점을 파악하고 개선시키기 위해 프로젝트를 통한 협업 능력 향상 공동의 목표를 가진 스터디를 통해 서로 설명해주면서 발전하기 위해 혼자 학습하면서 느꼈던 어려웠던 점을 도와주기 위한 멘토링을 받을 수 있고, 멘토링을 통해 미처 느끼지 못했던 필요한 기술 파악하기 위해 패스트캠퍼스를 선택한 이유 줌을 통해 함께 공부하면서 충분한 학습시간과 함께 집중할 수 있게 도와주는 환경 관리 시스템을 통한 규칙적인 학습 패턴 구축 패스트캠퍼스의 온라인 강의를 통해 실시간 강의로 부족한 점들을 스스로 채울 수 있게 도와줌 실제 현업에 있는 분들이 강의를 해주면서, 실무에..
-
BackEnd Project
70일차 - TIL
오늘 한 것 그래프 고급 알고리즘 - 최소신장트리를 구하는 크루스칼 알고리즘 크루스칼 알고리즘을 이용한 최소신장트리(MST) 구하기 1-1. 크루스칼 알고리즘 - 탐욕 알고리즘과 Union-Find 알고리즘을 이용해 구현 1-2. 구현하기 위해 사용하는 알고리즘의 특징 (1) 탐욕 알고리즘 : 현재 시점에서 최소 비용을 선택해서, 최적의 결과를 찾도록 하는 알고리즘 (2) Union-Find 알고리즘 : 트리 구조를 활용해 Disjoint Set을 표현하는 알고리즘으로, 노드들 중에 연결된 노드를 찾거나, 노드들을 서로 연결할 때 사용한다. (2)-1. Disjoint Set : 서로소 집합 자료구조로, 중복되지 않는 부분 집합들로 나눠진 원소들을 저장하는 자료구조 (2)-2. Union-Find 알고리..
-
BackEnd Project
66일차 - TIL
오늘 한것 SELECT 구문 문제풀이 조인 이너조인 where 조인의 경우 : 조인 후, where 절로 필터링 INNER JOIN ON의 경우 : ON의 조건절 먼저 수행후 조인 수행 서브쿼리 주로 검색 결과를 좁히기 위해 사용, SELECT문에 사용할 경우 한 줄의 결과일 때만 사용 가능 FROM절에서 사용할 경우 인라인 뷰라고 부르며, 특정 조건식을 갖는 SELECT 문을 테이블처럼 사용할 수 있다. WHERE절에서 사용할 경우 집계함수를 사용해야 하는 경우에도, GROUP BY로 그룹화하지 않고 결과 출력 가능 GROUP BY 여러개 사용할 경우, 세부분류되어 있는 상태에서 대분류, 소분류와 같이 따로 집계가 가능하다. 운영체제 - 스레드와 동시성 싱글 스레드와 멀티 스레드 스레드는 CPU 활용의..
-
BackEnd Project
65일차 - TIL
오늘 한것 운영체제 - 프로세스 간 통신, 클라이언트 서버 간 통신, 스레드 DB - LIMIT, SUM/AVG/COUNT/WHERE 조건절/MIN/MAX/JOIN INDEX 테이블 저장하는 것보다 키-필드만 저장해 효율적으로 저장하면서 테이블에 대한 동작 속도를 높이기 위한 자료구조 기본키로 작성된 필드는 클러스터형 인덱스(클러스터드 인덱스)가 자동으로 생성된다 유니크키로 작성된 필드는 보조 인덱스(넌클러스터드 인덱스)가 자동으로 생성된다. 외래키 다른 테이블의 기본키를 필드로 가지고 있으면서 데이터 정확성을 보장하기 위해 외래키 제약조건을 설정할 경우 두 테이블 사이의 관계를 선언함으로써 데이터의 무결성을 보장해 주는 역할을 수행한다. 외래키 제약조건은 기본값으로 수정, 삭제에 제약이 발생한다. 제약..
-
BackEnd Project
64일차 - TIL
오늘 한것 SELECT문 - LIMIT, COUNT, DISTINCT 운영체제 - 프로세스 스케줄링 목적 : 대기시간 최소화, 공평한 프로세스 작업 시간 할당, idle 최소화해 휴지시간을 줄인다. 스케줄링 큐의 종류 JOB Queue : 시스템 내부의 프로세스 Ready Queue : 실행 대기 상태의 프로세스 Device Queue : 인터럽트, 실행 중지된 프로세스 중 I/O 대기하는 프로세스 장기 / 단기 / 중기 스케줄러 단기 스케줄러 : 레디 큐에서 프로세스를 선택해 CPU에 할당 (CPU 스케줄러) 중기 스케줄러 : CPU를 할당 받기 위해 경쟁하는 과열된 프로세스를 제거 스와핑 : 제거한 프로세스들을 불러와 중단점에서 부터 프로세스를 재개하는 것 장기 스케줄러 : 잡 큐에서 프로세스 선택해..
-
BackEnd Project
63일차 - TIL
오늘 한것 자바 자료구조- 스택, 큐 DB와 DBMS의 이해 웹 서버의 이해 - 프로토콜 HTTP와 정적 파일 처리하는 웹 서버 그리고 동적파일 처리하는 WAS 내일 할것 프로그래머스 - 카카오 문제 풀기 자바 - 해시, 큐
-
BackEnd Project
60일차 -TIL
오늘 한것 자바 - 연결 리스트 프로그래머스 - 개인정보 수집 유효기간, 햄버거 만들기, 옹알이(2), 체육복 그룹스터디 워크샵 내일 할것 프로그래머스 - 카카오 문제 풀기 자바 - 해시, 큐, 스택
-
BackEnd Project
프로그래머스 - 카카오
https://school.programmers.co.kr/learn/courses/30/lessons/150370# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr : 개인정보 수집 유효기간 import java.util.*; class Solution { public int[] solution(String today, String[] terms, String[] privacies) { System.out.println(today); String[] todayarr = today.split("\\."); // System.out.println(Arrays..
-
BackEnd Project
프로그래머스 Level1-정리
https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr :햄버거 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr :옹알이 https://school.programmers.co.kr..
-
JavaScript
59일차 -TIL
오늘 한것 자바 - 연결 리스트 자바스크립트 기초 강의 https://www.youtube.com/watch?v=KF6t61yuPCY 내일 할것 자바스크립트 중급 자바 자료구조- 이중 연결리스트 자바 자료구조- 스택 자바 자료구조- 큐 자바 자료구조- 해시
-
BackEnd Project
58일차 - TIL
오늘 한것 MIME 타입과 중간언어 JSON 프로그래머스 -level1 끝내기 소켓 관련 강의 듣기 내일 할것 자바의 정석 - I/O와 네트워킹 자바스크립트 기초
-
BackEnd Project
체육복 - Greedy, DFS
import java.util.*; import java.util.stream.*; class Solution { static List visited=new ArrayList(); static int answer=0; public int solution(int n, int[] lost, int[] reserve) { //바로 앞 번호 학생이나 뒷번호 학생에게만 체육복 대여 가능 //최대한 많은 사람 빌려주기 //여벌 체육복 가져온 사람 체육복 도난 가능 -> 빌려줄 수 없다. // int answer=0; List list = new ArrayList(); for(int i=1;i
-
BackEnd Project
57일차 - TIL
오늘 한것 프로그래머스 -level1 Thread, 반이중 통신 내일 할것 TCP/IP, BufferedReader, BufferedWriter자바의 소켓 통신 프로그래머스 -level1 끝내기 자바의 정석 - I/O와 네트워킹 소켓 관련 강의 듣기
-
BackEnd Project
56일차 - TIL
오늘 한것 프로그래머스 -level1 TCP/IP, BufferedReader, BufferedWriter자바의 소켓 통신 내일 할것 TCP/IP, BufferedReader, BufferedWriter자바의 소켓 통신 프로그래머스 -level1 끝내기 자바의 정석 - I/O와 네트워킹 소켓 관련 강의 듣기 14. 전송 계층의 프로토콜 (1) 전송 계층의 역할 소개12:04 15. 전송 계층의 프로토콜 (2) TCP의 역할과 상태 천이도17:47 16. 전송 계층의 프로토콜 (3) 흐름제어와 슬라이딩 윈도우14:03 17. 전송 계층의 프로토콜 (4) TCP타이머와 API흐름, TCP캡쳐해보기13:34 18. 전송 계층의 프로토콜 (5) UDP프로토콜의 구조9:23 19. 프로그래밍 소켓 인터페이스22..
-
BackEnd Project
숫자 짝꿍-String.repeat, append, String=char+"", startsWith("0"), char-48=숫자
https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; import java.util.stream.*; class Solution { public String solution(String X, String Y) { String answer = ""; //int[] -> Integer[] 은 되는데 //char[] -> Character[]은 안되는 이유? //Arrays.stream().boxed.toArray(C..
-
BackEnd Project
로또의 최고 순위와 최저 순위 - Collections.frequncy, Collectors.toList(), boxed().toArray(Integer[]::new);
import java.util.*; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; //int[] -> Integer[] int cnt=0; for(int x:lottos) if(x==0) cnt++; // System.out.println("cnt: "+cnt); Integer[] buyArr=Arrays.stream(lottos).boxed().toArray(Integer[]::new); Integer[] winArr=Arrays.stream(win_nums).boxed().toArray(Integer[]::new); //당첨이 가능했던 최고 순위와 최저 순위 //set으로 ..
-
BackEnd Project
[알고리즘 정리] - DP, Divide&Conquer, BinarySearch, Dijkstra, Greedy, Kruskal, Prim, Backtracking
[동적 계획법, 분할과 정복] -> 이진 탐색 -> 최단 경로([다익스트라 알고리즘] -> [벨만-포드 알고리즘] ) -> [탐욕 알고리즘 (Greedy) -> 냅색 알고리즘] -> 최소신장트리 ([크루스칼 알고리즘] -> [프림 알고리즘]) -> 백트래킹 [동적 계획법, 분할과 정복] -> 이진 탐색 -> 최단 경로([다익스트라 알고리즘] -> [벨만-포드 알고리즘] ) -> [탐욕 알고리즘 (Greedy)] -> 냅색 알고리즘 package org.algorithms.dp.greedyAndKnapsack; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class CoinExchange { //탐욕 알..
-
BackEnd Project
정규표현식과 matches, patterns 메서드, 진법 변환
https://codechacha.com/ko/java-regex/ Java - 정규표현식(regex), 다양한 예제로 쉽게 이해하기 정규표현식(Regular expressions), Regex는 문자열에서 어떤 패턴을 찾는데 도움을 줍니다. Regex의 Metacharacters, Quantifiers, Grouping에 대해서 정리하였고 다양한 예제로 설명합니다. Regex는 대부분 알고 있지 codechacha.com https://codechacha.com/ko/java-string-matches/ Java - String.matches()로 문자열 패턴 확인 및 다양한 예제 소개 String.matches()로 특정 패턴의 문자열을 포함하는지 확인할 수 있습니다. 특정 패턴이란 정규표현식(Reg..
-
BackEnd Project
51일차 - TIL
오늘 한것 자료구조 - 힙, 해시, 그래프 내일 할것 자료구조 - 강의 운영체제 - 개요 스프링 - TCP 네트워크
-
BackEnd Project
50일차 - TIL
오늘 한것 자료구조 - 색인과 검색 트리 내일 할것 자료구조 - 힙, 해시, 그래프
-
BackEnd Project
49일차 - TIL
오늘 한것 스프링의 정석 - 데이터 변환과 검증 자료구조 - 정렬 알고리즘 내일 할것 자료구조 - 정렬 알고리즘 자료구조 - 트리와 힙 그리고 그래프
-
BackEnd Project
[스프링의 정석-리뷰] 1. 데이터 변환과 검증
1. WebDataBinder 쿼리스트링이 담긴 URL을 요청하면, 파라미터 Map으로 쿼리시트링에 담긴 값들이 담긴다. Map은 다시 컨트롤러의 매개변수로 전달받은 객체에 담기게 된다. WebDataBinder : Map의 Value는 모두 String이기 때문에, 객체의 자료형에 맞춰서 타입 변환과 데이터 검증을 수행하고, BindingResult에 타입 변환과 데이터 검증의 결과를 담아서 응답한다. 회원 가입 예제 타입 변환 String -> Date 변환 (변환 메서드를 정의한 변환기 이용해 변환) String[] -> String 변환 (여러 개 문자열로 이루어진 문자열 배열을 문자열로 스프링이 자동변환) 데이터 검증 BindingResult타입의 매개변수로 성공한 결과 혹은 실패시 에러가 담긴..
-
BackEnd Project
48일차 - TIL
오늘 한것 만화책 대여 관리 시스템 프로젝트 마무리 내일 할것 스프링 부트 https://github.com/ji-hoooon/comicbookrental GitHub - ji-hoooon/comicbookrental: 만화책 대여 관리 시스템 만화책 대여 관리 시스템. Contribute to ji-hoooon/comicbookrental development by creating an account on GitHub. github.com
-
BackEnd Project
45일차 - TIL
오늘 한것 스프링의 정석 -ch03,ch04 내일 할것 스프링의 정석 - ch03, ch04 자바 - IO 입출력
-
BackEnd Project
44일차 - TIL
오늘 한것 스프링의 정석 -ch03 자바 - 스레드, 람다와 스트림 내일 할것 스프링의 정석 - ch03, ch04 만화대여시스템 프로젝트 설계
-
BackEnd Project
39일차 - TIL
오늘 한것 스프링의 정석 -ch03 자바 - 스레드 내일 할것 스프링의 정석 -ch03
-
BackEnd Project
38일차 - TIL
오늘 한것 스프링의 정석 -ch03 내일 할것 스프링의 정석 -ch03 자바 - 스레드
-
BackEnd Project
37일차 - TIL
오늘 한것 스프링의 정석 -ch03 자바의 정석 - 컬렉션 프레임워크 내일 할것 스프링의 정석 -ch03 자바 - 제네릭
-
BackEnd Project
36일차 - TIL
오늘 한것 스프링의 정석 -ch03 자바의 정석 - 컬렉션 프레임워크 내일 할것 스프링의 정석 -ch03 자바의 정석 - 컬렉션 프레임워크 자바 - 컬렉션 프레임워크
-
BackEnd Project
35일차 - TIL
오늘 한것 스프링의 정석 -ch03 자바 - Data와 자료형 내일 할것 스프링의 정석 -ch03
-
BackEnd Project
32일차 - TIL
오늘 한것 스프링의 정석 -ch02 자바 - lang 패키지 내일 할것 스프링의 정석 -ch02 자바의 정석 - 연습문제 9,10
-
BackEnd Project
32일차 - 자바. lang 패키지 (+ String클래스의 compareToIgnoreCase, equalsIgnoreCase)
Object 클래스 참조값만 비교 객체 자신과 파라미터로 전달된 객체를 비교 참조 값을 비교 equals() 메서드를 오버라이딩해서 객체의 값을 비교하는 것으로 변경한다. package ch13.objequals; public class ObjectEqualsTest { public static void main(String args[]) { Object obj1 = new Object(); Object obj2 = new Object(); if(obj1.equals(obj2)) { // obj1 == obj2 System.out.println("obj1.equals(obj2) -> true"); } else { System.out.println("obj1.equals(obj2) -> false"); }..
-
BackEnd Project
31일차 - TIL
오늘 한것 스프링의 정석 -ch02 내일 할것 스프링의 정석 -ch02 자바 -lang 패키지
-
BackEnd Project
30일차 - TIL
오늘 한것 스프링의 정석 -ch02 자바 - 예외처리 내일 할것 스프링의 정석 -ch02
-
BackEnd Project
30일차 - 자바. 예외처리
예외처리 컴파일 에러 런타임 에러 예외는 처리 가능한 오류 의미적 제약을 위반했을 때 JVM이 프로그램에게 예외라는 에러가 발생했다고 알린다. 예외가 발생했을 때 프로그래머가 원하는 방향으로 움직이도록 하는 것을 예외처리라고 말한다. Exception 제어의 비지역 이동 자바에서 예외가 발생하면 JVM은 예외를 던지고, 발생 지점에서 프로그래머가 지정한 위치로 이동한다. 프로그램의 흐름을 문맥이라고 하는데 이러한 제어의 흐름을 주어진 문맥의 외부로 이동시키고, 미리 선언된 지점에서부터 수행 예외, 조건, Continuation은 비지역 제어 구문의 일반적인 예이다. Exception 처리 키워드 try catch finally throw throws 예외 처리 용도 정상 종료 예외 내용 보고 무시하고 계..
-
BackEnd Project
29일차 - TIL
오늘 한것 스프링의 정석 - Spring MVC 내일 할것 스프링의 정석 - Spring MVC 자바 - 예외처리
-
BackEnd Project
28일차- 자바. 인터페이스와 내부클래스
인터페이스 - 외부에 공개를 위한 스펙 명세 공통된 메서드를 가지는 클래스를 추상 메서드로 묶거나 관련없는 클래스들을 인터페이스 타입으로 묶기위해 사용한다. 표준화 가능 - 스펙을 정의하고 제시하므로 일관성있는 코드 가능 다중 상속 가능 협업이 쉬워지므로, 개발 시간 단축 느스한 결합이 가능 - 변경에 유연하다. (DIP : 의존성 역전 원칙) 서로 관계 없는 클래스 간의 관계를 맺을 수 있다. 다중의 인터페이스를 구현하게 되면 구현한 클래스는 참조변수를 인터페이스 타입으로 선언해 사용 가능 인터페이스의 작성 규칙 정적 상수와 추상 메서드만을 선언 가능하므로, 추성클래스와 같이 인스턴스 생성 불가 (예외 존재) Java 8 : default method, static method 선언 가능 Java 9 ..
-
BackEnd Project
28일차 -TIL
오늘 한것 스프링의 정석 - Spring MVC 자바의 정석 - 7장 8장 연습문제 자바 - 인터페이스와 내장클래스, 익명클래스 내일 할것 스프링의 정석 - Spring MVC
-
BackEnd Project
27일차 -TIL
오늘 한것 스프링의 정석 - Spring MVC 내일 할것 스프링의 정석 - Spring MVC
-
BackEnd Project
26일차 -TIL
오늘 한것 스프링의 정석 - Spring MVC 내일 할것 스프링의 정석 - Spring MVC
-
BackEnd Project
25일차 -TIL
오늘 한것 스프링의 정석 - Spring MVC 내일 할것 스프링의 정석 - Spring MVC
-
BackEnd Project
24일차 - TIL
오늘 한것 스프링의 정석 - Spring MVC 자바 - 상속과 캡슐화 과제 리뷰 내일 할것 스프링의 정석 - Spring MVC
-
BackEnd Project
23일차 - TIL
오늘 한것 자바의 정석 - 연습문제 5, 6 스프링의 정석 - ch01, ch02 -1. 내일 할것 스프링의 정석 - ch02 자바 -상속,메서드 오버라이딩, 캡슐화
-
BackEnd Project
22일차 - TIL
오늘 한것 자바의 정석 - 스레드 자바 -메서드와 생성자 내일 할것 자바의 정석 - 연습문제 5, 6 스프링의 정석 - ch01, ch02 -1.
-
BackEnd Project
20일차 - TIL
오늘 한것 자바의 정석 - 컬렉션 프레임워크 내일 할것 자바의 정석 - 컬렉션 프레임워크 자바의 정석 - 스레드
-
BackEnd Project
19일차 - TIL
오늘 한것 자바의 정석 - 스트림 자바 - 메서드 그룹 스터디 내일 할것 자바의 정석 -컬렉션 프레임워크
-
BackEnd Project
18일차 - TIL
오늘 한것 자바의 정석 - 스트림 내일 할것 자바의 정석 - 람다와 스트림 자바 - 객체와 배열
-
BackEnd Project
18일차 - 자바 (6) 객체와 배열
1. 객체 참조 변수 - Memory 객체 참조값을 가지고 객체를 핸들링 다른 객체 참조값을 지정하면 새로운 인스턴스를 참조하게 된다. 먼저 null로 초기화 후, 새로운 인스턴스를 참조하도록 하는걸 권장한다. 하나의 인스턴스를 여러개의 참조변수가 참조할 수 있지만 하나의 참조변수가 여러개의 인스턴스를 참조할 수는 없다. 객체의 초기화와 메모리 할당 순서 선언된 상태에서는 메모리의 reference를 위한 공간만을 할당함 (스택 영역) new 연산자를 사용해야만 MyDate를 위한 공간이 할당됨 (힙 영역) 멤버들의 명시적인 초기화 생성자를 실행 변수에 Reference값 할당 String의 경우에는 String poll에 리터럴 형태로 저장된다. 따라서 같은 문자열의 경우 하나의 문자열 객체만을 가리킨..
-
BackEnd Project
17일차 - TIL
오늘 한것 자바의 정석 - 람다와 스트림 람다식 : 함수를 간단한 식으로 표현하는 방법 함수형 인터페이스 : 익명객체인 람다식을 다루기 위한 참조변수 타입 java.util.function 패키지 : 표준화된 함수형 인터페이스 패키지로, Supplier, Consumer, Funciton, Predicate 매개변수가 함수형 인터페이스인 제네릭 메서드 작성 Predicate의 결합, Function의 합성, CF와 함수형 인터페이스 자바 - 객체지향의 이해, 객체와 배열 내일 할것 자바의 정석 - 람다와 스트림
-
BackEnd Project
17일차 - 자바 (5) 객체지향의 이해, 객체와 배열
1. 객체지향의 요소 클래스 객체 속성, 메서드, 생성자, 패키지 2. 객체지향의 특징 상속 하나의 클래스와 상속관계로 상위클래스의 필드와 메서드를 획득해서 재사용하는 것 다형성 상황에 따라 메서드의 성질을 변화시키는 것 추상화 객체들의 공통 특성을 파악하고, 불필요한 특성을 제거 단순화해 세부정보를 숨기고 기능을 표시한다. 캡슐화 내부 정의를 외부에 보이지 않도록 외부 접근을 차단한다. 높은 응집력과 약한 결합 응집도와 결합도 OOP 개발 및 유지 관리를 쉽게 도와준다. 데이터 숨김을 제공한다. 절차보다 데이터에 중점을 두어 프로그램을 객체로 나눈다. 3. 클래스와 객체 클래스와 객체의 관계 클래스는 설계도, 설계도를 이용해 만든 제품이 객체 클래스의 구성 요소 필드, 메서드, 생성자, 블럭, 중첩 클..
-
BackEnd Project
16일차 - TIL
오늘 한것 자바의 정석 - 람다와 스트림 내일 할것 자바의 정석 - 람다와 스트림 자바 - 객체지향의 이해
-
BackEnd Project
15일차 - TIL
오늘 한것 자바의 정석 - 제네릭스, 열거형, 어노테이션 자바 - 반복문과 제어문 내일 할것 자바의 정석 - 스트림
-
BackEnd Project
15일차 - 자바 (4) 제어문 (+ repeat(i))
제어문 키워드 조건문 : if, switch 반복 제어문(loop문) : for, while, do-while 제어 키워드(jump문) : break, continue 조건문 1. if문 boolean타입을 리턴하는 조건문 Optional : 실행할 구문이 한 줄만 존재할 경우 '{}' 생략 가능 if문 안에 또 다른 if문을 중첩해서 사용 가능 비즈니스 코드의 경우엔 if문이 상당히 많이 반복되므로, 테스트 커버리지는 60~70만 통과해도 성공적인 테스트가 된다. if (조건식){ 실행 구문; } if (조건식){ 실행구문;//조건이true일때실행 } else{ 실행 구문; // 조건이 false이면 실행 } if (조건식1){ 실행 구문; // 조건식1이 true일 때 실행 } else if(조건식2..
-
BackEnd Project
14일차 - TIL
오늘 한것 자바의 정석 - 제네릭스 & 열거형 & 어노테이션 내일 할것 자바의 정석 - 제네릭스 & 열거형 & 어노테이션 자바의 정석 - 람다