본문 바로가기

전체 글

(16)
프로그래밍 세계 - 사용자 코드와 구현 코드, 인터페이스, UIUX, 프로그래밍에는 크게 사용자 코드와 구현 코드로 구분되어 있습니다. 사용자(코드) 구현 코드 의미 사업/도메인 기술 중요도 경험(연차) 학습(실력) 직업 PM 아키텍트 1. 사용자 코드란 쉽게 말해, 비즈니스(사업), 도메인입니다. 내 프로젝트, 내 사업과 관련된 것을 말합니다. 예를 들어 내가 보험에서 일을 한다면, 보험 금액을 청구하고 보험금을 관리하고 사업과 관련된 일련의 행위가 모두 사용자 코드에 해당됩니다. 이렇게 사용자 코드를 위주로 실력을 쌓았다면, PM을 할 경우가 많습니다. 따라서 해당 분야에 경험이 많으면 많을수록, 즉 연차가 쌓이면 쌓을수록 능력치도 더 올라갑니다. 2. 구현 코드란 기술입니다. 사용자 코드가 직접 사업을 운영한다면, 구현 코드는 운영이 잘 될 수 있도록 설계해주는 것이..
객체와 인스턴스의 차이 / 라이브러리와 패키지의 차이 객체와 인스턴스 객체와 인스턴스의 차이에 대해 말해볼까합니다. 차이라기보단 조금 더 명확한 설명을 적어보려합니다. 예를 들어보겠습니다. 제가 '책 사와'라고 말했습니다. 그러면 이것은 클래스입니다. 그래서 누군가 저에게 '책'을 가져온다면, 그것은 '객체'입니다. 컴퓨팅 환경에서 내가 그 객체를 어딘가에 놓고 써야겠죠. 컴퓨터는 메모리라는 공간에 무엇인가를 놓고 작업을 하게 됩니다. 즉, 메모리 안에 객체를 넣기 위해서 해당 객체가 들어갈만큼 메모리를 할당합니다. 이때, 메모리엔 주소가 있습니다. 주소가 할당된 메모리에 올라가 있는 상태를 '인스턴스'라고 하며, 객체를 메모리에 올리는 과정을 '인스턴스화'라고 합니다. 인스턴스가'객체를 소프트웨어에 실체화'한다는 의미가 무엇인지 이해가 되셨을까요? 객체를..
스크립트 언어 / 자바와 C++의 차이 / 메모리 구성요소 / 조각모음과 포맷 해야하는 이유 / 안드로이드와 ios의 차이 스크립트 언어&기계어&마크업 언어의 차이점 스크립터 언어에는 자바스크립트, 파이썬과 같은 언어를 말합니다. 쉽게 말해 C언어, C++언어와 같은 기계어보다 모던합니다. 최근에 나온 방식들, 기법들을 활용했기 때문에 include iostream 와 같은 부가적인 코드(세레모니 코드, 보일러 플레이트)들이 들어가지 않습니다. 코드가 짧고 간단해보이지만 실은 숨겨져있을 뿐, 컴파일러(인터프리터)가 우리를 도와주는 것입니다. 이처럼 스크립터 언어는 컴파일러 도움을 받고 의지하는 만큼, 개발자가 비교적 다양하게 코딩을 하지 못해 복잡한 코드를 실현시키기 어렵습니다. 컴파일러가 하라는데로 해야하니까요. C언어, C++언어와 같은 경우 모든 코딩이 가능합니다. 대신 그만큼 버그도 생기고 우역곡절(?)이 많겠지만 그..
메모리 공간 : 힙, 스택, 포인터, 메모리 누수 / 클랙스, 함수, 객체, 메소드 메모리 공간 (스택, 힙, 정적 영역) 프로세스에는 스레드가 있고, 스레드에는 스택, 힙, 정적 영역으로 있습니다. 즉, 메모리 공간은 스택(Stack), 힙(heap), 정적(static) 영역으로 구성되어있습니다. 정적영역에는 코드영역과 데이터 영역으로 이루어져 있습니다. 프로세스가 실행되면, 스택, 힙, 코드영역, 데이터 영역 이렇게 4개의 메모리 구간을 할당받습니다. 그 중 스레드가 생성되면 힙, 코드, 데이터 영역은 프로세스에 할당된 것을 모든 스레드에 공유합니다. 따라서, 스택에 있는 영역 혼자 공유가 되지 않습니다. 그렇다면, 스택에 있는 메모리를 공유받으려면 어떡해야 할까요? 바로바로 => 스택 영역에서 포인터를 통해 접근합니다. 포인터(pointer)로 스택에 있는 영역을 힙에서 할당받는..
32비트 운영체제 와 64비트 운영체제 (내 pc 사양 확인하기) - 한 번쯤, 내 PC에서 봤을 화면입니다. 내 PC의 사양을 확인하기 위해 들어가보는 화면입니다. 이 화면에서 알 수 있는 것들을 명확히 집고 넘어가려고 합니다. 32비트 운영체제 VS 64비트 운영체제 32비트와 64비트에 대해 알아보기 전에, 비트와 바이트의 개념을 다시 한 번 잡고 가도록 하겠습니다. 8bit = 1byte 입니다. 즉, 32비트 운영체제는 저장공간을 4바이트씩 처리하고, 64비트 운영체제는 8바이트씩 처리하는 것입니다. 32비트 운영체제 64비트 운영체제 당연히, 한 번에 8바이트 씩 사용이 가능한 64비트가 32비트보다 좋은 컴퓨터라고 할 수 있겠죠? => 32비트는 두 번 가져 와야할 걸 64비트는 1번에 가져올 수 있기 때문입니다. 32비트는 2의 32승입니다. 따라서 주소..
Do it 첫 코딩 기초 공부 2 : 메모리 종류와 변수 1) 변수(물건)와 메서드(행동) - 사람이 가지고 있는 물건을 변수, 사람의 행동을 메서드라고 이해하면 됩니다. 2) 메모리 종류 3가지(저장 / 램 / 캐시) 1) 저장 메모리 : 저장 메모리란 '보관' 기능을 하는 메모리를 말합니다. 저희가 프로그램을 다운받을 수 있는 건 "저장 메모리"가 있기 때문입니다. 2) 램 메모리 : 램 메모리란 램(Random Access Memeroy), '임시로' 저장되는 공간입니다. 보통 컴퓨터 사양의 '메모 리'가 바로 램 메모리입니다. 3) 캐시 메모리 : 계산의 순간에 필요한 기억을 저장하는 메모리입니다. 저장 메모리 -> 램 메모리 -> 캐시 메모리로 갈수록 더 빠르고, 실수를 안 하는 값비싼 메모리를 사용합니다. 3) 변수 - 변수란 '다양한 값을 저장할 ..
Do it 첫 코딩 기초 공부 1 : 비트, 아스키 코드, 유니코드, 컴파일러, 스크립트 언 참고하기 좋은 영상 : https://programmers.co.kr/learn/courses/5/lessons/141 1) 약속된 비트 => 코드, 비트 8개 => 1바이트 - 비트는 0 또는 1 중 하나의 정보를 가지는 아주 조금한 정보 단위입니다. 예를 들어 우리가 쓰고 있는 "예", "아니오", 가 컴퓨터에서는 01, 010 으로 구분하여 받아들이는 것입니다. 그런데 각 개발자마다 누구는 "예"를 01, 누구는 001 로 표현한다면, 소통이 쉽지 않겠죠? 그래서, 각기 다른 비트의 조합이 의미하는 것들을 "약속"하였고, 약속된 0, 1로 만들어진 부호를 코드라고 합니다. - 개발자들은 사람의 언어와 컴퓨터 언어를 연결하기 위해, 알파벳과 숫자, 특수문자 개수를 일일이 세어보았습니다. 그러면서 비트..
프로세스와 스레드, 프레임워크 VS 라이브러리, CPU VS GPU 다양한 언어를 온라인에서 해볼 수 있는 링크 : https://www.onlinegdb.com/ 1) 프로세스와 스레드 윈도우가 사용하는 단위는 "프로세스"입니다. (윈도우이냐, 리눅스이냐 에 따라 달라지기 때문에, 윈도우가 사용하는 단위가 프로세스라는 것을 알아두어야합니다) 프로세스는 CPU 안에 할당되어 운영되고 있는 현재 실행중인 프로그램을 의미합니다. 그래서 작업 관리자를 보면, 백그라운드 "프로세스" 라는 용어로 나타난다는 것을 알 수 있습니다. 보이지 않는 윈도우 내부에서 열심히 돌아가고 있는 프로그램들을 백그라운드 프로세스라고 한다면, 우리가 컴퓨터로 바라보고 있는 화면은 "포그라운드 프로세스"라고 합니다. 프로세스 안에는 다양한 스레드가 존재합니다. 스레드는 프르세스 내에서 실행되고 있는 ..