본문 바로가기

전체 글

(121)
[혼공컴운] Ch3. 명령어, 컴파일 고급 언어와 저급 언어 고급 언어: 개발자가 이해하기 쉽게 만든 언어 C, C++, 파이썬, 자바, 자바스크립트 등 저급 언어: 컴퓨터가 이해하고 실행하는 언어 기계어: 0과 1로 이루어짐 어셈블리어: 기계어를 사람이 이해하기 편하도록 만듦 컴파일 언어와 인터프리트 언어 고급 언어 → 저급 언어 변환 과정 컴파일 인터프리트 고급 언어는 변환 방식에 따라 컴파일 언어 혹은 인터프리터 언어로 구분된다. 그러나 칼로 무 자르듯 딱 나뉘는 것은 아니고(파이썬은 A, 자바는 B ..), 그냥 컴파일 방식과 인터프리터 방식 두 가지가 있다고 이해하는 편이 낫다 컴파일 언어 고급 언어(소스 코드) → 컴파일(컴파일러) → 저급 언어(목적 코드) 작성된 소스 코드는 컴파일러에 의해 저급 언어로 변환되고(컴파일), 컴파..
[자바의 정석] (Ch.6 객체지향개념) 클래스 변수, 인스턴스 변수 클래스 변수와 인스턴스 변수 변수 정의 용어 클래스 변수 (class variable, cv) = static 변수 인스턴스 변수 (instance variable, iv) 로컬 변수 (local variable, lv) 이렇게 카드가 있다고 하면, 속성에는 숫자, 무늬, 폭, 높이 등이 있을 것이다. 이 중에서 숫자, 무늬는 각 카드 객체마다 달라야 한다. 이처럼 개별 속성을 가져야 하는 것은 인스턴스 변수(iv)로 정의한다. 카드 객체들의 폭, 높이는 모두 동일하게 유지되어야 한다. 이처럼 공통 속성을 가지는 것은 클래스 변수(cv)로 정의한다. 앞서 배웠듯, 클래스 변수는 iv와 똑같이 선언하는데 다만 앞에 static을 붙여주면 된다. static = 정적인, 고정된 클래스 변수, 인스턴스 변수의..
[혼공컴운] Ch2. 데이터 1. 이진법 컴퓨터는 Binary만 이해 가능. 전기가 들어온 경우 vs 안 들어온 경우 이진법으로 음수를 표현하는 방법 2의 보수법: 음수를 표현하는 대표적인 방법 (보수: 보충해 주는 수) 현재의 숫자에서 자릿수가 1단계 올라갈 수 있는 수가 몇인지를 구하면 된다. 어떤 수를 그보다 큰 2^n에서 뺀 값 2의 보수 쉽게 구하는 법: 모든 0과 1을 뒤집고 1을 더한 값 Q1. 왜 2의 보수가 음수인가요? B가 A의 음수라면, -B 는 -(-A), 즉 A이겠지? 2의 보수로 구한 값의 보수를 또 구하면 제자리로 돌아오기 때문에, 음수를 표현하는 최적의 방법이다. Q2. 어떠한 이진수를 봤을 때 그게 음수인지 양수인지 어떻게 구별하죠? 예를 들어, -(1011)을 표현하기 위한 0101과 십진수 5를 표..
[혼공컴운] Ch1. 컴퓨터 구조 개괄 1. 컴퓨터 구조를 알아야 하는 이유 좋은 개발자가 되기 위해서는, 프로그래밍 언어의 문법과 함께 컴퓨터의 근간을 알아야 한다. 이를 알아야 문제해결 능력이 향상되고, 성능/용량/비용을 고려한 개발을 할 수 있기 때문이다. 1) 문제해결능력 컴퓨터구조에 대한 이해는 프로그래밍 언어의 문법만으로는 해결하기 어려운 문제들을 해결할 수 있도록 돕는다. 분명 코드는 제대로 작성했는데 동작하지 않는 경우가 있다. 내 개발환경에서는 문제없이 돌아갔는데 실제 사용자들에겐 오류가 뜨는 것이다. 이런 케이스는 문법 오류가 원인이 아니다. 여기서 더 나아가지 못하는 개발자가 있고, ‘한 번 들여다 봐야겠다!’ 하고 컴퓨터 내부를 거리낌없이 들여다 보는 개발자가 있다. 좋은 개발자는 컴퓨터를 미지의 대상으로 여기지 않고, ..
[자바의 정석] (Ch6. 객체지향개념) 선언 위치에 따른 변수의 종류 이번에는 변수의 타입이 아니라 변수의 종류에 대한 이야기다. 선 요약정리 선언위치에 따른 변수의 종류 변수 종류 설명 iv (인스턴스변수) - 클래스 영역에 속함 - 인스턴스가 생성될 때 생성 - 객체와 인스턴스 변수는 묶임 - 객체 생성 후 사용 가능 cv (클래스변수) = static + iv - 클래스 영역에 속함 - 클래스가 메모리에 올라갈 때 생성 - 객체 생성 없이 사용 가능 lv (지역변수) - 메서드 영역에 속함 - 메서드 내 변수 선언문이 수행될 때 생성 선언 위치에 따른 변수의 종류 변수의 종류는 어디에 선언했느냐에 따라 3가지 종류로 나뉜다. iv (instance variable) cv (class variable = static + iv) lv (local variable, 지역변..
[자바의 정석] (Ch6. 객체지향개념) 클래스의 정의 클래스의 정의: 데이터 + 함수 클래스의 간단한 정의는, 보는 관점에 따라 3가지로 설명할 수 있다. 설계도 데이터 + 함수 사용자 정의 타입 앞서서 클래스는 설계도라고 했다. 그러나 그 외에도 다른 관점에서 보면, 클래스를 데이터와 함수의 결합이라고 볼 수도 있다. (혹은 사용자 정의 타입이라고도 할 수 있다.) 아래는 데이터와 저장 공간의 발전 단계이다. 배열은 같은 타입의 변수밖에 저장할 수 없다는 한계가 있다. 이를 보완하여 서로 관계가 있는 다른 타입의 변수도 함께 저장할 수 있는 구조체가 생겼다. 이 구조체에서 더 발전한 것이 클래스이다. 구조체까지는 변수만 담을 수 있었지만, 클래스에는 변수와 함수를 함께 저장할 수 있다. '관련있는 다양한 데이터를 담는 것을 넘어서 이 데이터를 가지고 작업..
[자바의 정석] (Ch6. 객체지향개념) 클래스와 객체 클래스, 객체 클래스의 사전적 정의 클래스의 정의: 클래스란 객체를 정의해 놓은 것 클래스의 용도: 클래스는 객체를 생성하는 데 사용된다 객체의 사전적 정의 객체의 정의: 실제로 존재하는 것. 사물 또는 개념 객체의 용도: 객체가 가지고 있는 기능과 속성에 따라 다르다. 강사님이 생각하기엔 설계도-제품 비유가 가장 적합한 비유 같다고 하신다. TV 설계도를 만들어놓으면 TV를 만들기 쉽다. TV를 만들기 위해 TV 설계도를 사용한다. 객체의 구성요소 - 속성과 기능 객체지향 개념은 군사적 목적으로 처음 등장. 현실 세계를 어떻게 하면 컴퓨터 안으로 옮겨 넣을까.. 를 고민했다. 예를 들면 미사일을 쏘기 전에 미리 시뮬레이션할 수도 있고.. 즉, 하드웨어를 어떻게 소프트웨어로 표현할까를 고민한 거다. 실물..
크래프톤 정글 3기 지원, 합격 후기✋ 여러가지 부트캠프를 알아보았는데, 가장 가고 싶었던 곳 중 한 곳인 크래프톤 정글에 붙게 되었다. 후에 지원하실 분들에게 참고가 될까 싶어서 후기를 남겨본다. #1. 크래프톤 정글을 선택한 이유 우리나라에 부트캠프가 정말x10 많아서 이들 중 괜찮은 과정을 필터링할 필요가 있었는데, 필터링한 나만의 우선순위는 다음과 같다. 커리큘럼 CS 지식 없이 당장 필요한 프레임워크, 프로젝트만 가르치는 곳은 피했다. CS 지식도 충분히 가르치고 프로젝트도 제공하는 곳 위주로 골랐다. 검증된 주최측, 멘토 IT 대기업, 유니콘에서 주최하는 프로그램 그렇지 않다면 유명한 사람, 유명한 단체가 주최하는 프로그램 멘토의 이력을 확인할 수 있어야 하며, 현업에서 좋은 경험을 쌓아오신 분들이어야 한다. 얼마나 몰입할 수 있는..