Sign in

42 Seoul cadet

That is why I made this.

Writers can see their articles in listed form in Medium, while readers can’t. There must be a reason for not supporting listing for readers in Medium. In anyways, I wanted my readers to see my articles in listed form so I built some simple website. It took just half of day to finish it.

Former README.md

At first, I made my git repo and wrote list of articles in markdown file like picture on left.

The thing is I want to use my blog as a part of portfolio. I had to turn it into fine…


운영체제에 경제학을 한 스푼

Photo by AbsolutVision on Unsplash

운영체제 수업을 듣다보면 참 흥미로운 이야기들이 많이 나온다. 운영체제가 없던 시절에는 개발자가 응용프로그램을 실행시키려고 직접 하드웨어를 조작했다는 이야기(아마 PCB를 개발자가 직접 관리했겠지..?ㄷㄷ)도 듣고..컴퓨터 부팅할 때 최상단 부모 프로세스가 생기는 거나, 작년에 주구장창 썼던 fork, exit 함수들이 프로세스 생성과 종료(수업에서 들으니 반가웠다)를 관할하는 시스템 호출이라는 등..

암튼 전통적인 프로세스는 처리의 기본 단위이며 자원 소유의 단위(하나의 주소공간) 및 디스패칭의 단위(하나의 제어흐름)이다. 단일 프로세스 내에서 동시처리가 불가능했기에 Thread 쓰레드라는 …


정렬 알고리즘에 대해 알아보자

Photo by Soraya Irving on Unsplash

요약

선택 정렬, 삽입 정렬 등은 최악의 경우 빅오 표기법으로 O(N ^ 2)의 시간이 소요되지만 병합 정렬 등은 최악의 경우에도 시간 복잡도 O(NlogN)을 보장하므로 대부분의 프로그래밍 언어의 라이브러리에서도 O(NlogN)를 보장하는 형태로 정렬 기능이 제공되고 있다. 경우에 따라서는 계수 정렬과 같은 O(N + K)를 보장하는 정렬 알고리즘을 사용할 수 있다.

그래서 저 정렬들이 뭔데?

선택정렬

  • 무엇을 선택? 남은 값 중에 min(array)를 선택하는거야
  • 가장 작은 데이터를 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 두번째와 바꾸는 과정을 반복

개인프로젝트 코드 리뷰 받고 배운 점 정리

Photo by Markus Winkler on Unsplash

3일간 쿠폰 발행 시스템을 만들었고 멘토님께 코드 리뷰를 받고 왔다. 사실 짧은 기간동안 만든거라 허점이 많았지만 그래도 정해진 마감일에 완성해서 우선 보여드리는게 나을 것이라 생각해 약속을 잡고 멘토링을 받으러 갔다.

물론 이전에 CTO 였던 멘토님께 코드 리뷰를 받는다는 건 참 부담스러웠지만 트인 장소에서 TV에 내 코드가 띄워지고 왜 이렇게 짰는지 설명하고 즉석에서 코드를 어떻게 수정할 수 있을지 이야기해보는 경험은 생각보다 즐거웠다. 아마 사고가 확장되는 경험이라 즐거웠던 것 같다. 멘토링 받은 내용은 아래와 같다.

쿠폰 번호 중복 방지에 관하여

  • 나는 쿠폰 번호를 생성할 …

다이나믹 프로그래밍 공부

Photo by Michał Parzuchowski on Unsplash

퀵 정렬 vs 다이나믹 프로그래밍

  • 퀵 정렬: 분할정복 알고리즘, 한 번 피벗이 자리를 잡게되면 그 기준 원소의 위치는 더 이상 바뀌지 않고 그 피벗값을 다시 처리하는 부분 문제는 존재하지 않음
  • 다이나믹 프로그래밍: 한 번 해결했던 문제를 다시금 해결한다는 특징을 지님

다만! 아래의 조건들에서만 사용 가능함

  1. 큰 문제를 작은 문제로 나눌 수 있다
  2. 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다

피보나치로 차이점 알아보기

  • 그냥 재귀사용시
def fibo(x):
if x == 1 or x == 2:
return 1
return fibo(x - 1) + fibo(x - 2)
print(fibo(4))
  • memoization(이전에 계산된 결과를 일시적 …

이진탐색

Photo by Wil Stewart on Unsplash

이진탐색을 보면 게임이 하나 생각난다. 술 병뚜껑 안에 있는 숫자를 맞추는 게임이다. 아마 범위가 1부터 50까지이고 5번 이내로 맞춰야 하는 그런 게임이었던 것 같다. 이 게임의 필승법은 역시 이진 탐색이다.

만약에 내 병뚜껑 안에 42 란 숫자가 있을 때 이진탐색으로 찾으면 몇 번만에 찾을 수 있을까?

1회: 일단 중간 숫자 25를 부른다. -> up

2회: 26와 50의 중간인 38 을 부른다. -> up

3회: 39과 50의 중간인 44 을 부른다. -> down

===3회만에 범위가 39 ~ 43 로 좁혀진 걸 알 수 있다. ===

4회: 39 와 43의 중간인 41을 부른다 -> up

5회: 42 정답이 나온다.

이걸 …


커뮤니케이션 능력부터 문제 해결 능력까지

나와 똑 닮은 슈스 개발자 찾기 심리테스트

링크: https://mkdev.netlify.app/

얼마 전 사이드 프로젝트로 시작했던 개발자 심리테스트를 마무리 했다. 이 프로젝트를 진행하면서 배웠던 점을 까먹기 전에 기록해보려고 한다.

우리 프로젝트는 나 포함 총 4명이서 참여했고 프론트는 React로 백은 node.js express 로 진행되었다. 실제 개발을 하기 전 매주 회의를 통해 팀 이름부터 정하는 것으로 시작해 어떻게 페이지를 구상할 것인지, 필요한 데이터를 DB에 어떻게 쌓아서 전달해 줄 것인지, 각 항목당 점수 계산은 어느 팀이 담당할 것인지 등 사소한 부분까지도 모두 함께 이야기를 했었다.

그 당시에는 왜 이 …


python3로 dfs, bfs문제풀기

Photo by Markus Spiske on Unsplash

DFS

  • Keyword: 중간에 가지 못하는 길이 있을 때, 묶음의 개수
  • Point: 재귀함수
  • 관련 문제: 백준 1260, 1012, 2667, 11724

BFS

  • Keyword: 최단거리, 지나야 하는 최소 칸의 개수
  • Point: queue
  • 관련문제: 백준 1260, 1697, 2178

bash script 짜넣기

Photo by Richy Great on Unsplash

최근에 토이 프로젝트를 진행하면서 난관에 부딪혔던 상황이 있었다. .env 파일에 필요한 key를 넣고 .gitignore.env 를 추가해버리니 github actions 로 CI/CD 를 했을 때 key가 필요한 부분이 제대로 동작되지 않는 문제였다. 🧐

요약하자면 우리에게 필요한 기능은 main.yml 에서 .env를 생성한 뒤 key 를 .env에 write 하는 것이었다.

방법을 물색해보니 bash script를 main.yml 에 짜넣는 방법을 많이 추천했다.

1)

2)

${{ secrets.API_KEY }} 를 log를 찍으면서 보려고 할 때 encrypt 되어 *** (애스터 …


Segmentation is a basic function in Operating System

Photo by CHUTTERSNAP on Unsplash

Whenever I see segmentation fault, it drives me nuts. It happens whenever I try to access wrong memory. And they are quite difficult to debug. I never thought about what ‘segmentation’ means before I started to study computer science.

Before started to know segmentation, you need to know this is a way that manage computer memory. No system can efficiently rely on limited RAM alone. So the computer’s memory management unit (MMU) uses the storage disk, HDD or SSD, as virtual memory to supplement RAM.

가상기억장치 : 주기억장치에서 이용 가능한 영역보다 큰…

forhjy

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store