- 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. 객체지향 프로그래밍- ..
- React.js 리액트2 - 스타일 https://styled-components.com/ Age" data-og-host="styled-components.com" data-og-source-url="https://styled-components.com/" data-og-url="https://styled-components.com/" data-og-image="https://scrap.kakaocdn.net/dn/nSgww/hyWKwAyfhu/QlMdJ7QqKkkEt2K1j8ugTK/img.png?width=652&height=652&face=0_0_652_652,https://scrap.kakaocdn.net/dn/bBcxq0/hyWKvhm1iY/AUW05CkfWGKuZJX3zBzTaK/img.png?width=652&height=6..
- React.js 리액트-1 (데이터 변경 감지해 UI를 동적으로 렌더링하는 엔진) https://reactjs-kr.firebaseapp.com/docs/installation.html기존의 뷰 프로세스 [CSR]1. 요청 -> view(html) -> 화면을 전달하면 브라우저가 렌더링 [전체 변경]2. view -> 자바스크립트의 비동기 요청 -> ajax를 통해 부분 변경-> json으로 응답 -> 응답받은 데이터를 이용해 렌더링 [부분 변경]3. 복잡한 화면일수록 부분 변경이 어렵다. [성능과 구현 측면에서][SSR]-> 부분변경 x -> ajax -> html -> 그림그리기리액트: ajax -> 데이터 변경감지 -> UI가 자동 업데이트 [옵저버 패턴]*npm, npx(1) npm 프로젝트별로 라이브러리 관리 / 모든 프로젝트가 공유하도록 사용도 가능 (여러 버전 사용 불가능..
- 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 오늘 한것 자바의 정석 - 제네릭스 & 열거형 & 어노테이션 내일 할것 자바의 정석 - 제네릭스 & 열거형 & 어노테이션 자바의 정석 - 람다
- BackEnd Project 13일차 - TIL 오늘 한것 자바의 정석 - 날짜와 시간 & 형식화 get() 메서드 : 천 분의 일초를 시간으로 표시하는 방법 / 이 달의 마지막 일 출력하는 방법 set() 메서드 : 두 날짜간 차이를 구하는 방법 / 두 시간의 차이를 구하는 방법 clear() 메서드 : 특정 날짜의 년월일 차이를 시분초로 계산할 땐 전체 필드를 클리어로 초기화 한 후에 세팅한다. 달력 출력 하기 당일 구하기 -> 다음달 1일에서 하루 빼기 요일 구하기 -> 시작하는 날짜의 빈칸 개수를 세기 위해 공백 계산해서 공백을 띄우고, 토요일마다 줄바꿈 수행하면서 1일부터 말일까지 출력 내일 할것 자바의 정석 - 제네릭스와 열거형
- BackEnd Project 13일차 - 자바를 통해 요구사항 구현하기 챕터1 # 02. 생활 속에서 객체 찾아 클래스로 구현해 보기 ## 객체를 찾아 봅시다 - 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다 - 아침에 회사에 가는 길에 별다방 커피숍에 들려 아이스 카페라떼를 주문했다 - 성적확인을 위해 학사 관리 시스템에 로그인 하여 수강 한 과목들의 성적을 확인했다 - 학생 클래스 ``` public class Student { int studentNumber; String studentName; int majorCode; String majorName; int grade; } ``` - 주문 클래스 ``` public class Order { int orderId; String buyerId; String seller..
- BackEnd Project 12일차 - 자바 (3) 연산자 (+ Short-circuit) 연산자의 종류 instanceof 연산자 : 해당 객체의 타입 혹은 타입의 자손인지 여부를 리턴한다. (즉, 참조변수 형변환이 가능한지) -> 참조 변수 형변환 이전에 반드시 수행해야하는 연산자 연산자 우선순위 연산자 종류별 우선순위 : 괄호 > 산술 > 비교 > 논리 > 대입 연산자 개수별 우선순위 : 단항 > 이항 > 다항 모두 진행방향이 왼쪽에서 오른쪽 단항과 대입 연산자만 오른쪽에서 왼쪽 산술 연산자 이항 연산자인 산술 연산자 byte, short, char, int 자료형 사이의 연산은 int형으로 결과를 처리 long, float, double의 경우 큰 자료형의 결과로 처리 증감 연산자 증감이 수행을 먼저 하면 선증감 명령이 끝난 이후에 증감을 하면 후증감 비교 연산자 '=' : 값을 대입하..
- BackEnd Project 12일차 - TIL 오늘 한것 자바의 정석 - java.lang패키지와 유용한 클래스 내일 할것 자바의 정석 - 날짜와 시간 & 형식화 자바의 정석 - 제네릭스, 열거형