분류 전체보기
-
TypeScript란프로그래밍/TypeScript 2018. 11. 11. 00:31
TypeScript란 무엇일까요?라는 키워드로 여기에 방문하셨다면 다들 JavaScript를 조금이라도 보셨을겁니다 (아니면 새로 보시는걸로...)먼저 JS는 인터프리터 언어입니다 실제 동작중인 즉 런타임에 타입을 체크하고 코드를 실행합니다var a;이 a라는 변수는 number일수도 string일수도 function, literal object일수도 있습니다만약 console.log(a.a) // undefined위의 코드는 undefined가 납니다 a의 객체요소중 a가 없기 때문에 undefined를 호출하는것이죠만약분들이 js를 하면서 위와같은 실수를 많이 하셨을거라고 생각합니다 (제가 많이했기 때문이 아니라...) 그렇다면 js를 좀더 빡빡하게(?) 사용하기 위해서는 어떻게 해야할까요? 타입을 ..
-
왜 하필이면 개발자인가?생각정리 2018. 7. 16. 22:16
2016년 아직은 철 없던 중학교 3학년 중간에 처음으로 프로그래밍이라는 부분에 대해 알게되었습니다그냥 평범하게 인문계를 졸업하고 대학교에 들어가 졸업을한다면 제가 과연 어떤 직장에 들어가 어떤 일을 할지 모르겠다는 생각이 들었습니다 말 그대로 "나는 어떻게 살아야 하는가?"에 대한 고민을 했었습니다마침 그때 중학교 친구가 프로그래밍을 공부한다고 막 시작을 했었고저에게 같이 공부해서 소프트웨어 마이스터고등학교에 들어가는게 어떻냐는 제안을 했습니다 그때 유행하던 템플X, 앵그리 버X 같은 게임을 즐겨하던 저에게 나도 이런걸 만들수 있지 않을까? 라는 생각을 그때 처음 가지게 되었습니다중학교때 나름? 중상위권이던 성적을 지니고 있어 소프트웨어 마이스터고에 입학 신청을 하고 합격을 한뒤 처음으로 C가 보이는 ..
-
퀵 정렬 (Quick 정렬)프로그래밍/알고리즘 2018. 6. 19. 10:37
안녕하세요 오늘은 정렬 중 분할 정복으로 유명하고 빠른 정렬로 유명한 퀵 정렬에 대하여 공부해도록 하겠습니다출처 : https://ko.wikipedia.org/wiki/%ED%80%B5_%EC%A0%95%EB%A0%AC( 퀵 정렬을 간단히 나타낸 gif ) 먼저 간단한 예제를 통해서 무엇인지 알아보도록 하죠!!!위와 같은 배열이 있고 이를 퀵정렬로 정렬하기위해서는 어떻게 해야할까요? 먼저 퀵정렬의 특징은 pivot이라는 중간값을 선택하는 것부터 시작합니다 또한 이를 선택하는 방법에는 두가지가 있는데 1. 배열의 중간값 2. index의 첫번째 이중 1번째인 중간값을 선택한다고 했을때 Pivot의 값은 배열의 중간값인 9가 선택이 됩니다 다음 퀵 정렬은 다음과 같은 규칙에 의해서 정렬이 진행됩니다 1. ..
-
의존성 주입이란? (DI)프로그래밍/Spring 2018. 6. 18. 22:28
스프링에서는 중요한 개념들이 존재합니다 그중 DI는 의존성 주입이라고 불리는 개념인데 객체를 직접 생성하는 것이 아닌 외부에서 객체를 주입시켜 사용하는 방식입니다 먼저 의존성이란 무엇일까요?간단히 생성자 호출 즉 new 연산자 입니다 Spring.class public Spring(){ new Java(); } 위의 코드는 Spring이라는 클래스 내에서 Java클래스를 호출합니다 즉 Spring 클래스가 Java클래스를 의존한다고 말을하는 것 입니다 Java java = new Java();Spring spring = new Spring(java);간단한 위의 코드를 예시로 들어보면 java클래스를 생성하고 Spring 클래스를 생성할때 매개변수로 java를 넣어줍니다이때 Spring 클래스에서 jav..
-
해시테이블이란?프로그래밍/알고리즘 2018. 6. 17. 22:31
해시테이블은 key와 value로 데이터를 저장하는 자료구조 중 하나입니다 (공간을 소모하여 시간을 얻는방법 혹은 가장 빠른 데이터를 검색하는 방식이라고도 부릅니다)출처 : https://ratsgo.github.io/data%20structure&algorithm/2017/10/25/hash/ 각각의 객체는 고유한 주소값을 가지며 이를가지고 hash Function을 통해 이 값을 테이블에 넣어 저장하는 방식입니다 이를 해싱이라고 하며 해시테이블의 가장 큰 장점은 원하는 데이터를 바로 찾을 수있다는 점입니다 시간복잡도로는 O(N) ~ O(1)로 가능한데O(1)이 가능한 이유는 각각의 객체는 고유한 주소값을 가지고 이 주소값을 가지고 해싱한다면 똑같은 값을얻어 바로 원하는 key로 value에 접근이 가..
-
자료형의 범위에 대하여프로그래밍 2018. 6. 17. 19:08
안녕하세요 오랜만에 포스팅 올립니다 :)이번시간에는 각 언어마다 존재하는 자료형에 대하여 알아볼려고 합니다 자료형의 범위를 사진으로 보면 아래와 같습니다출처 : https://m.blog.naver.com/PostView.nhn?blogId=satyee&logNo=140127143696&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F 먼저 비트(bit)와 바이트(byte)의 개념에 공부를 한뒤 진행하도록 하겠습니다 컴퓨터에서는 전기 신호를 받아 이진수의 개념으로 모든 것을 처리합니다 표현하는 단위를 비트라고하며 비트는 0과 1로 표현합니다그러나 bit는 컴퓨터에서 처리하는 최소 단위이고 이러한 비트를 8개 묶은것을 바이트라고합니다 즉 1byte = 8bit의 개념으로 ..
-
버블 정렬프로그래밍/알고리즘 2018. 6. 5. 20:22
지난 시간에는 선택 정렬에 대해서 알아봤습니다!!그렇다면 이번에는 또 다른 정렬 방법중 하나인 버블 정렬에 대하여 알아볼 계획입니다 먼저 버블 정렬이란?출처 : http://wonjayk.tistory.com/219 위의 사진과 같이 반복하는 정렬 방법입니다!!바로 옆의 Index와 값의 교환을 N번 까지 반복하는 간단한 정렬입니다 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr = new int[scanner.nextInt()]; for (int i = 0; i < arr.length; i++) { System.out.print(i + 1 + "번째 값 입력 : "); arr[i] = ..