서른, 프로그래머 입문하다
-
CPU
최종 수정 : 2025.04.21CPU컴퓨터에서 가장 중요한 부품 중 하나 ■ 레지스터CPU 안에 있는 작은 임시 저장장치이며, 다양한 레지스터들이 있고, 각기 다른 이름과 역할이 있다. 프로그램을 이루는 데이터와 명령어가 프로그램의 실행 전후로 레지스터에 저장되기 때문에, 레지스터에 저장된 값만 잘 관찰해도 비교적 낮은 수준의 프로그램이 어떻게 작동하는지를 파악할 수 있다.WinDbg(윈도우 운영체제), hdb(리눅스, 맥OS 운영체제) 등의 도구를 이용해 관찰할 수 있다. 1. 프로그램 카운터(PC, Program Counter)메모리에서 다음으로 읽어 들일 명령어의 주소를 저장한다. 간혹, 명령어 포인터(IP, Instruction Pointer)라고 부르는 CPU도 있다. 일반적으로 프로그램 카운..
2025.04.21
-
컴퓨터가 이해하는 정보
최종 수정 : 2025.04.21컴퓨터가 이애하는 정보CPU는 기본적으로 0과 1만을 이해할 수 있다. 0과 1을 나타내는 가장 작은 정보의 단위를 비트(bit)라고 하며, 1비트는 0또는 1, 2개(2^1, 2의 1제곱)의 정보를 표현할 수 있다.N비트는 2^N개의 정보를 표현할 수 있다. 하지만 비트는 너무 작은 단위이다. 그래서 프로그램의 크기를 말할 때는 비트보다는 바이트(byte), 킬로바이트(kB), 메가바이트(MB), 기가바이트(GB), 테라바이트(TB) 등을 사용한다.바이트(byte) : 여덟 비트를 묶은 단위이들은 프로그램의 관점에서 본 정보 단위이다. CPU 관점에서의 정보단위로는 워드(word)가 있다. 워드는 CPU가 한 번에 처리할 수 있는 데이터의 크기를 의미한다. 만약 CPU가..
2025.04.21
-
데이터베이스의 큰 그림
최종 수정 : 2025.04.19데이터베이스■ 데이터베이스와 DBMS데이터베이스(database)사전적 정의 : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합원하는 기능을 동작시키기 위해 마땅히 저장해야 하는 정보의 집합사용자에게 제공되는 프로그램, 특히 웹 서비스에 있어 심장과도 같다.어떤 데이터가 저장되는지에 따라 웹 서비스의 정체성이 달라진다.데이터가 저장되는 방식에 따라 웹 서비스의 성능이 달라진다. 데이터베이스 관리 시스템(DBMS ; Database Management System)관계형 데이터베이스 관리 시스템(RDBMS ; Relational DataBase Management System)ex) MySQL, Oracle, PostgreSQL, SQLite,..
2025.04.19
-
네트워크의 큰 그림
최종 수정 : 2025.04.18네트워크여러 대의 장치가 그물처럼 연결되어 정보를 주고받는 통신망■ 네트워크의 기본 구조네트워크는 노드와 간선으로 이루어진 자료구조라는 점에서 그래프의 형태를 띤다. 이처럼 노드와 노드 사이의 연결 구조는 네트워크 토폴로지(network topology)라고 부르며, 망형, 트리형, 링형, 성형, 버스형(선형)으로 나눌 수 있다. 호스트(host) : 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종 수신하는 노드클라이언트(client) : 요청(request)을 보내는 호스트서버(server) : 응답(response)을 보내는 호스트즉, 클라이언트와 서버는 주고받는 정보의 방향에 따라 부여된 역할이다. 호스트와 호스트 사이에 있는 중간 노드는 가장자리에 위치한 호스..
2025.04.18
-
자료구조의 큰 그림
최종 수정 : 2025.04.18자료구조데이터를 효율적으로 저장하고 관리하는 방법을 학습하는 과목이다. 어떠한 구조로 데이터를 다룰지에 대해 학습한다.■ 자료구조와 알고리즘자료구조와 더불어 알고리즘을 함께 학습하는 것이 좋다. 둘 사이에는 깊은 연관성이 있다. 어떤 자료구조가 사용되었느냐에 따라 사용 가능한 알고리즘이 달라질 수 있기 때문이다.자료구조(data structure) : 데이터를 효율적으로 저장하고 관리하기 위한 방법알고리즘(algorithm) : 어떠한 목적을 이루기 위해 필요한 일련의 연산 절차 ■ 시간 복잡도와 공간 복잡도자료구조와 알고리즘을 고려하며 작성한 코드는 훨씬 더 품질 좋은 코드가 될 가능성이 높다. 자료구조와 알고리즘의 고려 여부에 따른 성능의 차이는 '시간 복잡도'와 '공..
2025.04.18
-
운영체제의 큰 그림
최종 수정 : 2025.04.18운영체제운영체제는 프로그램들 간의 올바른 실행을 돕고, 컴퓨터 구조에서 학습했던 다양한 하드웨어 자원을 프로그램에 배분하는 프로그램이다.■ 운영체제 종류1. 데스크탑 : 윈도우와 맥OS, 리눅스 등2. 스마트폰 : 안드로이드와 iOS 등 종류에 관계 없이 운영체제가 제공하는 핵심적인 기능을 비슷하다.이때 핵심 기능을 담당하는 부분을 커널(kernel)이라고 한다. Q. 핵심 기능은 무엇인가?1. 자원 할당 및 관리2. 프로세스 및 스레드 관리■ 운영체제의 역할Q. 자원(resource)이란?시스템 자원(system resource) 이라고도 한다.프로그램 실행에 마땅히 필요한 요소Q. 자원에는 무엇이 있는가?실행에 필요한 '데이터'를 자원(소프트웨어)실행에 필요한 '부품'..
2025.04.18
-
컴퓨터 구조의 큰 그림
최종 수정 : 2025.04.17컴퓨터 구조컴퓨터 구조는 컴퓨터 과학의 가장 근원적인 학문이다. 근원적이라 함은 하드웨어에서 가장 가깝다는 말과 같다.■ 컴퓨터가 이해하는 정보Q. 컴퓨터가 이해할 수 있는 정보는?A. 데이터와 명령어 작성한 소스 코드는 내부적으로 컴퓨터가 이해할 수 잇는 데이터와 명령어의 형태로 변환된 뒤에 실행된다. 1. 데이터숫자, 문자, 이미지, 동영상과 같은 정적인 정보컴퓨터와 주고받는 정보나 컴퓨터에 저장된 정보 자체를 데이터라고 통칭명령어에 종속적인 정보이며, 명령의 대상이자, 명령어의 재료 2. 명령어데이터를 활용컴퓨터는 기본적으로 0과 1만을 이해할 수 있으므로 데이터와 명령어 또한 0과 1로 이루어져 있다. 이 명령어를 실행하는 컴퓨터의 부품은 CPU이다.■ 컴퓨터의 핵..
2025.04.17
-
프로젝트 & CS 공부
CS공부를 계속 해나가고 있다.컴퓨터구조, 운영체제, 데이터베이스, 네트워크, 자료구조를 병행하면서 읽기를 병행하고 있다. 많은 책들이 컴퓨터구조와 운영체제를 한 세트로 묶어서, 혹은 컴퓨터구조 다음에는 운영체제를 안내하는 게 궁금했었다. 이 궁금함은 공부를 하면서 해결됐다. 둘 사이에는 긴밀한 연결성이 있었고, 내용도 꽤나 겹친다. 데이터베이스는 예상외로 어렵지 않은 느낌이다. 자료구조는 알고리즘 문제를 풀면서 자연스레 공부하게 되어 큰 거부감은 없었다. 자주 노출되고 들어서 거부감이 덜 한 느낌이다. 제일 고전은 네트워크이다. 대표적으로 7계층이 주요 공부 포인트인데, 네트워크 계층부터가 급 어려워진다. IP, 라우터 등 꽤나 들어본 것들이지만 막상 공부하면 어렵다. 일단은 그냥 읽으면서 익숙해지고,..
2025.02.13
-
Supabase SQL 보관
최종 수정 : 25.02.10 클로디에 의존하여 개발을 진행했는데, 테이블이 많이 엉켰었다. 섹션마다 서로 데이터가 호환되지 않아 생긴 이유였고, 무엇보다 내가 고민하지 않고 문제를 해결하고 넘어가기만 해서 발생했던 참사였다. 그래서 프로젝트에 사용된 테이블과 함수, 정책들을 다 삭제하고 처음부터 다시 만들고 있다. # 회원가입을 위한 profiles 테이블1. profiles 테이블 생성create table public.profiles ( id uuid references auth.users on delete cascade primary key, name text, nickname text unique, email text, avatar_url text, interests text[], ..
2025.02.10
-
Supabase Password-based Auth with email or phone 공식문서 번역
최종 수정 : 25.1.19공식 문서를 번역한 것입니다.비밀번호 기반 인증유저의 이메일 또는 휴대폰 번호와 연결된 비밀번호로 사용자가 로그인할 수 있도록 한다. 사용자들은 보통 비밀번호로 사이트에 로그인하기를 기대한다. Supabase 인증은 안전한 설정 옵션과 비밀번호 저장 및 확인을 위한 모범 사례를 사용하여 비밀번호 기반 인증을 안전하게 구현할 수 있도록 도와준다. 유저는 이메일 주소나 전화번호를 사용해 자신의 신원과 비밀번호를 연결할 수 있다.# With email이메일과 비밀번호 기반 인증 활성화이메일 인증은 기본적으로 활성화되어 있다. 사용자가 로그인을 위한 그들의 이메일 인증이 필요한지 설정할 수 있다. 호스팅된 Supabase 프로젝트에서는 기본적으로 활성화되어 있다. 자체 호스팅 프로젝트..
2025.01.19