일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- java
- 스프링
- 알고리즘
- JavaScript
- 카카오
- 알고리즘정렬
- effectivejava
- 스프링부트
- Effective Java
- 오블완
- 스프링핵심원리
- 이차전지관련주
- Sort
- 이펙티브자바
- 이펙티브 자바
- 자바
- 클린아키텍처
- 엘라스틱서치
- 티스토리챌린지
- 코딩테스트
- Spring
- kubernetes
- Effective Java 3
- 예제로 배우는 스프링 입문
- 김영한
- ElasticSearch
- 자바스크립트
- 스프링 핵심원리
- 카카오 면접
- k8s
- Today
- Total
목록개발 (125)
Kim-Baek 개발자 이야기
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ super - 부모객체를 의미한다. this 는 (현재)이 객체 - super.부모객체의 멤버 -> 부모객체의 instance 변수/메소드 호출시 사용 ※ super . 는 생략하더라도 보통 컴파일러가 알아서 처리! - ★ super( [값, ...] ) -> 부모객체의 생성자 호출 -> 생성자 구현부의 첫 구문으로 와야한다 (this(), super()는 같이 올 수 없어!) -> 생성자 구현부에 this () 나 super 가 없으면 super(); 가 첫 구문으로 들어가게 된다 public A( ){ super(); 부르기 -> 상위 클래스의 객체를 자동으로 만들어서 같이 묶어서 사용할 수 있도록 하기..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ※원래 프로그램은 내부에서 연관을 갖고 동작했다.(절차지향적에서) 모듈화를 했다고 해서 그 연관이 사라지는 것이 아니다. 그것을 모듈과의 관계로 표현한다. ◎ 의존관계 (Dependency) ※Association(의존관계) ⊃ has a ⊃ Aggregation ⊃ composition ⊃ use a - 의존관계의 의미 : 하나의 객체가 일하기 위해 다른 객체에 의존(필요로 하는) 관계 ->메소드 메소드, 함수 : 제공하는 기능(println()) 메소드 내에서 사용하는 관계 -> local 변수로 사용 - has a(포함) 관계 : 하나의 객체가 다른 객체를 자신의 속성으로 가지고 있는 관계 -> Insta..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ Static 키워드(제한자) - instance 변수, 메소드, static block, inner class 에서 사용된다. - 의미 : Class 의 멤버 -> 객체와는 관계없다 (단 한개만 존재하게 된다) - Card 클래스에서 kind 나 number의 경우 각 카드마다 달라지는 값이다 그러나 weight, height 의 경우 모든 카드에 동일한 값이다! -> Class 에 종속시키자 (Static) ex) Class A{ static int var; -> new A( ) 를 했을 때, var과 go()는 객체안에 존재하지 않는다. static void go( ){ } } ※ 메모리 영역 - hea..
함수 호출과 this Arguments 객체 자바스크립트에서 함수를 호출할 때 인수들과 함께 암묵적으로 arguments 객체가 함수내부로 전달된다. arguments 객체는 유사 배열 객체이다 넘겨진 인자(배열), length, callee(함수의 참조 값) 으로 구성되어 있다. function sum(a, b){ return a+b; } console.log(sum(1)); //NaN console.log(sum(1,2)); //3 console.log(sum(1,2,3)); //3 // length를 이용한 구현 function sum(){ var result = 0; for(var i=0; i < arguments.length; i++){ result += arguments[i]; } return..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ※ class loading : 하드에 있는 자바파일을 cpu 가 빠르게 처리하기 위해 Main Memory 에 올리는 것(JVM이 처리) ※Heap 내부의 내용을 없애는 시점 : 더 이상 사용할 수 없을 때 ex) new A( ) -> 값을 사용할 수 없다. 지정되지 않음! : JVM 이 처리한다. ※ reference 타입은 메모리에 동일한 크기로 주소가 잡힌다 (4byte) primitive 타입은 각각 크기에 맞게 공간을 할당한다. ※ 메소드가 찾는 것은 기본적으로 Local 변수이다. 없으면 instance 변수도 확장해서 찾게 된다. this 를 컴파일러가 추가해서 인스턴스 변수를 찾게 된다. ※ M..
Function Object 자바스크립트에서는 함수도 객체이다. 함수에 정의된 로직 말고도 객체처럼 프로퍼티들을 가질 수 있다. function add(x, y){ return x+y; } add.status = "good"; console.log(add(3,3)); //6 console.log(add.status); //good 함수를 생성할 때 만들어 지는 함수 코드는 함수 객체의 [[Code]] 내부 프로퍼티에 자동으로 저장된다. 함수는 일급 객체이다 자바스크립트에서는 함수도 일반 객체처럼 취급된다. 따라서 일급 객체를 만족하는 특징들이 있다. 리터럴에 의한 생성 변수나 배열의 요소, 객체의 프로퍼티 등에 할당 가능 함수의 인자로 전달 가능 함수의 리턴값으로 리턴 가능 동적으로 프로퍼티를 생성 및 ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 자바의 메모리 영역 ※ class loading : 하드에 있는 자바파일을 cpu 가 빠르게 처리하기 위해 Main Memory 에 올리는 것(JVM이 처리) 1. Heap (힙) 영역 - instance 가 저장되는 영역 - instance 변수 2. execution stack (실행스택) 영역 - 실행 중인 메소드의 지역변수들이 저장되는 영역 3. 메소드 (class) 영역 - class 변수(class 코드)들이 저장되는 영역 public class Worker { 25? true : false; Person per = new Person(); Person per2 = new Person(); per..
JavaScript Function 함수 정의하기 자바스크립트 함수는 3가지 방법으로 생성할 수 있다. 함수 선언문 함수 표현식 Function() 생성자 함수 1. 함수 선언문 방식 함수 선언문 방식은 객체 리터렁 방식과 같다. 자바스크립트에서는 함수도 일반 객체처럼 취급하기 때문이다. 함수 선언문 방식으로 정의할 경우 반드시 함수명이 정의 되어야 한다. function sum(x, y) { return x+y; } 2. 함수 표현식 방식 자바스크립트에서는 함수도 하나의 값처럼 취급된다. 함수를 만들고 변수에 할당하여 생성하는 것을 함수 표현식이라 한다. //sum 이라는 변수에 두 값을 더해주는 익명 함수 참조 값을 저장한다. var sum = function(x, y) { return x+y; } ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ this( [ 값, ... ] ) 의 사용 - 생성자에서 오버로딩된 다른 생성자 호출시에 사용한다 - 반드시 생성자 구문의 첫 명령으로만 올 수 있다. ex) this( ); , this( 10 ); , this( 10, "abc" ); -> 생성자에서 다른 생성자를 호출하고 싶을 때 사용! * A( ) { 다른 내용 -> 조건문이나 반복문의 사용도 허용이 안된다. 무조건 첫번째에 와야한다. this( 10 ) } * A ( int i , int j , String s ){ this.i = i; this.j = j; -> 이 두줄을 this( i, j ) : 코드의 편리를 위해. i, j 는 다른 생성자에서..
Data Type 자바스크립트는 크게 2가지의 데이터 타입으로 나뉜다. (기본타입 / 참조타입) 1. 기본 타입 - Number - String - Boolean - Undefined - Null 자바스크립트의 기본 타입은 그 자체가 하나의 값을 나타내는 것이다. var num = 10; var str = "jeahyun"; var flag = true; var empty; var val = null; typeof num // number typeof str // string typeof flag // boolean typeof empty // undefined typeof val // object typeof 는 피연산자의 타입을 리턴해준다. 모든 숫자를 64비트 부동 소수점 형태로 저장한다(C의 do..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 배열의 리턴 int go() { return new int{10, 20, 30}; -> 배열 넘길때 사용 } ◎ 리턴(return) - 호출한 곳 (caller 메소드) 로 돌아가라 구문 : return [ 값 ]; - 1개의 값 -> 메소드의 retun type이 void 인 경우 생략가능 하지만 다른 type 인경우 반드시 return 구문 실행이 보장되어야 한다. ◎ 메소드 and 생성자 오버로딩 (overloading) - 매개변수가 다르면 같은 메소드 이름을 여러거 메소드에 사용할 수 있다. -> 쓰는 사람이 편해진다. -> 개수나 타입 class A{ void a( ) { } int b ( int..
Javascript 란? 자바스크립트는 객체 기반의 웹 브라우저에서 동작하는 스크립트 언어이다. node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용된다. 웹 개발, 서버 개발, 애플리케이션 개발 등 다양한 분야에서 사용된다. Javascript의 핵심 개념 객체 : 자바스크립트의 기본 데이터 타입을 제외한 거의 모든 것은 객체이다. 함수 : 자바스크립트의 함수는 일급 객체로 다뤄지고, 함수 역시 객체이다. 프로토타입 : 모든 객체는 프로토타입을 가진다. 프로토타입으로 상속 등 다양한 자료구조를 구현할 수 있다. 실행 컨텍스트, 클로저 : 자바스크립트는 실행 컨텍스트를 가지고 scope가 존재한다. scope를 이용해 우리는 클러저를 활용 할 수 있다. 객체지향 프로그래밍 &..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 객체와 클래스 - 객체 (instance) -> 존재하는 것 (유, 무형) - 품사로는 명사 - 클래스 (class) - 너무 범위가 작거나 큰 것은 클래스로 유효하지 않다. ex) 고객은 이름, 나이, 주소를 갖는다. -> 값 1개 : 클래스로 하기에는 작다 * 하지만 이름이 성, 본관, 이름 등 분류되서 사용되는 경우에는 class 가 될 수도 있다. ※ 공통점을 뽑아내는 과정 -> 추상화 ◎ 클래스 다이어그램 - 세 칸의 표를 통해서 클래스의 선언을 다이어그램으로 나타낼 수 있다. 맨 위칸에는 클래스의 이름, 두 번째칸에는 클래스의 속성, 세 번째 칸에는 클래스의 동작을 넣는다 [ modifier ] ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ IDE (Intergrated (통합), Development (개발), Environment(환경)) - javac.exe, java.exe 와 같은 개발에 필요한 여러 프로그램을 묶어준 것.프로그램의 개발 Tools 이다.( Eclips, Intelli J, NetBeans 가 대표적) -> Plug in 기능이 있어 tool을 개발해 기능추가가 가능 (확장성) ◎이클립스의 사용 - Perspecitive ( 개발 Tool 별 전체화면 ) -> 이클립스 안에는 자바, 디버깅, 형상관리 등 어러 프로그램이 내장되어 있다. 이때 각 각 개발하고자 하는 Tool 마다 화면이 다른데, 이 화면이 Perspect..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 자바의 입출력(I/O) Data ------ 입력 ------> program ------- 출력 -------> 모니터 - 입력은 외부로부터 값을 받아오는 것 - 출력은 값을 모니터와 같은 곳에 출력하는 것 ex)System,out.print("안녕"); ◎ Scanner - Java 1.5 부터 추가된 기능으로 유저에게 입력기능을 제공한다. 사용하기 위해서는 class 의 밖에 맨처음 줄에 import java.util.*; 이 필요하다 - 사용법 Scanner 변수명(일반적으로 sc 를 많이 사용) = new Scanner(System.in) - 문자를 읽는 스캐너를 생성하는 코드 String str ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 시험 1. JRE의 의미(역할)와 구성 요소를 적으세요. Jave Runtime Environment 의 줄임말로 자바 실행 환경을 의미한다. 자바로 만든 프로그램을 실행하기 위한 환경을 의미한다. Java program 같은 경우는 o.s, h/w(platform)에서 실행되는 것이 아니라 JRE 위에서 실행된다. 왜? 자바가 interpreted 방식이기 때문이다. JRE 의 구성요소로는 첫 번째로 interpreter 역할을 하는 JVM (Java Virtual Machine) 있다. JVM 의 경우 자바 프로그램의 입장에서는 o.s 이자 h/w 역할을 모두 다 한다고 볼 수 있다. 두 번째로 API(A..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다. ◎화면에 값을 출력하는 방식 - System.out.println(출력할 값); -> 값 + enter 를 나타낸다 ( ln이 line next 를 의미) 값을 1개만 출력하기 때문에 원하는 형태를 위해서는 + 연산자를 통해 문자열을 계속 붙여야 한다. - System,out,print(출력할 값); 1개의 값을 출력하나 enter 가 들어가지 않는다. - System.out.printf("출력문자열 format"[, 값]); -> jdk 1.5 이상부터 지원하는 기능 f 가 format을 의미한다. ※ %문자 (지시자, 전환문자) -> %d : 정수 , %f : 실수, %s - 문자열(모든 type), %%..
OAuth2 승인 방식의 종류 Authorization Code Grant Type : 권한 부여 코드 승인 타입 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용됩니다. 리스소 접근을 위한 사용자 명과 비밀번호, 권한 서버에 요청해서 받은 권한 코드를 함께 활용하여 리소스에 대한 엑세스 토큰을 받는 방식입니다. Implicit Grant Type : 암시적 승인 권한 부여 코드 승인 타입과 다르게 권한 코드 교환 단계 없이 엑세스 토큰을 즉시 반환받아 이를 인증에 이용하는 방식입니다. Resource Owner Password Credentials Grant Type : 리소스 소유자 암호 자격 증명 타입 클라이언트가 암호를 사용하여 엑세스 토큰에 대한 사용자의 자격 증명을 교환하는 ..
HDFS HDFS(Hadoop Distributed File System)는 수십 테라바이트 또는 페타파이트 이상의 대용량 파일을 분산된 서버에 저장하고, 많은 클라이언트가 저장된 데이터를 빠르게 처리할 수 있게 설계된 파일 시스템이다. HDFS를 이용하면 수십 혹은 수백 대의 웹 서버급 서버를 묶어서 하나의 스토리지처럼 사용할 수 있다. 즉 기존 대용량 파일 시스템과의 차이점은 저사양 서버를 이요해 스토리지를 구성할 수 있다. 물리적으로 분산된 서버 디스크에 저장된 데이터들은 HDFS에서 제공하는 API를 이용하여 파일의 읽기 및 저장과 같은 제어가 가능하다. 은행이나 전자상거래처럼 트랜잭션이 중요한 경우는 HDFS가 적합하지 않으며, 대규모 데이터를 저장하거나 배치로 처리하는 경우 유용하다. HDFS..
인프런에서 백기선 님의 [스프링 프레임워크 핵심 기술] 을 듣고 정리한 내용입니다 Inversion of Control: 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법을 말 함. - 추가적으로 토비의 스프링에서의 설명 어떤 프로그램을 만들 때, 각 기능들을 만들어 두더라도 이 기능들이 필요에 따라 순서대로 작동하지 않는다면 그 프로그램은 제대로 작동할 수 없습니다. 따라서 각 기능들이 순서대로 작동하게 하기 위해서 제어(Control)가 필요합니다. 위에서 이야기한 제어할 항목들이 적다면 프로그래머가 기능의 순서를 알고 관리할 수 있습니다. 하지만 기능들이 늘어나서 수천, 수만개의 제어..