본문 바로가기

전체 글105

유닉스 Unix 와 리눅스 Linux 유닉스와 리눅스의 시작 1991년 리누즈 토발즈라는 대학생이 Linux 커널을 만듬 1969년 유닉스의 탄생 유닉스 Unix 유닉스의 주요 기능 멀티태스킹 : 여러 프로그램을 동시에 실행할 수 있는 기능 가상메모리 : 프로그램이 물리적으로 사용 가능한 것보다 더 많은 메모리를 사용할 수 있도록 하는 시스템 파일 시스템 : 파일을 구성하고 저장하기 위한 계층적 시스템 셀 : 사용자가 운영 체제와 상호 작용할 수 있도록 하는 명령줄 인터페이스 리눅스 Linux 리누스 토르발르가 1991년 유닉스 기반으로 개발한 컴퓨터 운영체제이다. 리눅스는 공개 소프트웨어라 회사 또는 그룹 등에서 커널 소스를 받아 OS를 직접 제작하여 사용된다. 따라서 특정 기관이 배포를 책임지는 것이 아니라 많은 배포판이 나온다. 리눅스.. 2023. 1. 7.
주간 회고 (2023-01-07) 2023-01-01 ~ 2023-01-07 코드스쿼드 마스터즈코스 시작 작년부터 계속 기다려왔던 부트 캠프 코드스쿼드 마스터즈 코스가 1월 2일부로 시작되었다. 월요일 아침 10시부터 OT를 들은 후, 바로 첫번째 미션부터 오늘 금요일이 끝난 직전까지 해야할 일들이 마구 쏟아져 내렸다. 할일이 기하급수적으로 쌓이는 지금 상황에서 살짝 갑갑함이 밀려오면서도 마음 속으로는 안정되는(?) 기묘한 기분을 느끼고 있다. 아마도 작년 10월 국비교육 수료 이후 심리적으로나 외적으로 불안했던 것들이 '공부를 한다'는 느낌에 더해 공부 가이드가 주어지기 시작하며 점점 안정화가 되어가고 있는 것 같다. 당연히 그냥 공부하는 기분만 들어서는 안된다. 나는 이 6개월동안 최선을 다해서 더 개발자에 가까워져야 한다. 함께하는.. 2023. 1. 7.
진법의 사칙연산, 2진수를 중심으로 진법 계산 방법 숫자인 진법을 익힌 뒤 가장 기본적인 활용 방식인 사칙연산(+, -, *, /) 방법을 정리해보았다. 가장 익숙한 10진수의 사칙연산 원리를 다시 되짚고 뺄셈, 곱셈, 나눗셈을 가장 간단한 진법인 2진법으로 고민해보았다. 다른 진수도 같은 원리로 작동할 것이다. ➕ 덧셈 10진수의 덧셈 44 + 86 ―――― 130 10 진수에서 덧셈을 할 때에 1의 자리부터 가장 왼쪽 자리수까지 각 자리 수를 더한다. 각 덧셈 결과로 어떤 자리수가 10 이상일 경우, 해당의 자리에서 -10을 하고 바로 윗자리수에 +1 을 해준다. 2진수의 덧셈 예시로 1101 (2) + 10111 (2) 를 계산해보자. 2를 넘는 자리수에 2를 빼고 바로 윗자리에 1을 더해주면 다음과 같이 결과가 나온다. 01101 .. 2023. 1. 2.
진법과 진법 변환 진법이란? 진법은 수를 표기하는 기수법의 하나로 임의의 숫자를 사용하여 수를 표현하는 방법이다. 우리는 일상적으로 10진법을 사용하고 있다. 우리에게 주어진 가장 기본적인 수 세기 도구 손가락이 👐 10개라 가장 직관적인 방법이 아닐까? 반면 컴퓨터는 2진법으로 수를 표현한다. // 2진법 - 10진법 010 (2) == 2 // 2^3*0 + 2^2*1 + 2^0*0 // 0, 1 한자리씩 == a bit // 8 bit = 1 byte 프로그래밍에서 많이 사용되는 진법 2진법 8진법 : 리눅스나 FTP 등에서 파일/폴더 권한 표현 등 10진법 16진법 : 1byte의 크기를 쉽게 표현할 수 있다. 유니코드, 프로그래밍시 변수 주소 값 등 🤔 진법을 왜 알아야할까? 진법은 프로그래밍 전반에 걸쳐 사용된.. 2023. 1. 2.
Garbage Collection(가비지 컬렉션) Garbage Collection (GC) 이란? 프로그램을 개발하다보면 유효하지 않은 메모리, 가비지가 발생한다. 프로그램이 동적으로 할당한 메모리 영역 중 사용하지 않은 영역을 탐지하여 해지하는 기능이다. 여기서 동적으로 할당한 메모리 영역이란, JVM에서 Heap을 말한다. 사용하지 않은 영역이란 어떤 변수도 가리키지 않아 사용하지 않은 메모리를 말한다. GC가 언어와 동작하는 환경마다 다르지만, 특정 때에 특정 방식으로 필요없는 정보들을 삭제한다. 해제하는 것을 잊은 경우 메모리를 재사용할 수 없는데, (메모리를 차지하지만 사용되지는 않는다.) 이러한 것을 메모리 누수memory leak라고 한다. Managed Language ↔ Unmanaged Language C, C++ 등 Unmanage.. 2022. 12. 26.
조금은 사적인 개발 블로그를 시작하며... 나는 개발블로그에 좀 회의적이었다. 나는 누군가에게 지식을 전달할만한 사람이 아니었고, 그리고 매번 정확한 정보만을 정리할 것이라는 자신감도 없다. 누군가가 어딘가에 쓴 내용을 그대로 복붙하며 정확하지 못한 정보를 나르거나, 매일을 블로그로 채우느니 안채우는 게 낫겠다고 생각했다. (그래서 TIL을 적는 것은 내게 익숙한 notion 플랫폼을 활용한다. 별건 없지만.. 링크) 그러다가 결국 이렇게 티스토리를 만든 것은 몇 가지 이유에서였다. 나 자신을 위한 지식의 창고가 필요했다. 더이상은 구글에 몇 번이고 같은 내용으로 검색하고 싶지 않아졌다. 다른 사람의 잘 정리된 글 링크를 가져다가 붙이더라도 한 번 찾았던 내용은 한 공간에 링크를 모아두는 편이 낫겠다고 생각했다. 그렇기 때문에 해당 주제에 대해 .. 2022. 12. 21.
Leethub 작동 안되는 현상 및 해결방법 들어가기 전에 알고리즘 문제 풀이를 시작하면서 백준허브를 굉장히 잘 사용하고 있었다. 백준과 프로그래머스에서 문제를 풀면 자동으로 지정된 깃 레포지토리에 커밋을 해주는 프로그램이다. 근데 Leetcode와 연동하여 사용 가능한 Leethub 가 원조라고 해서, 호다닥 설치해보았다. (이것이 11월 즈음이었다.) 요즘 가장 자주 가는 알고리즘 문제풀이 사이트가 Leetcode이기도 해서, 이왕 공부하는거 차곡차곡 쌓자 생각했는데.. 이게 웬걸? 문제를 풀어도 인식이 되지 않는다🤦‍♀️ 🤬 문제점 LeetCode가 작동을 안한다. 푼 문제 카운트도 안된다. 다들 잘 쓰고 있는 것 같은데.. 대체 나에게만 왜?! 문제해결 참고글 : Leethub 작동중지 및 해결방법 작동하게 만들었더니 root에 냅다 폴더 .. 2022. 12. 20.
Java의 데이터 타입 분류와 메모리 할당 데이터 타입의 분류 프로그램은 자료구조(데이터)와 알고리즘의 결합으로 이루어진다. Java의 데이터 타입에는 크게 기본타입(primitive type)과 참조타입(reference type)으로 분류된다. 기본 타입 기본 타입 메모리 사용 크기 저장되는 값 범위 byte 1byte -2^7 ~ (2^7 - 1) char 2byte 0 ~ (2^16 - 1), 유니코드 short 2byte -2^15 ~ (2^15 - 1) int 4byte -2^31 ~ (2^31 - 1) long 8byte -2^63 ~ (2^63 - 1) float 4byte (+/-)1,4E-45 ~ (+/-)3.4028235E38 double 8byte (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308.. 2022. 12. 19.