[born2beroot]
https://velog.io/@coh/Born2BeRoot Virtual Box에 OS를 설치하고 ssh, fire wall cron등 여러 설정들을 했습니다. 시스템 로그를 출력하는 스크립트를 작성하고 cron 을 사용하여 주기적으로 화면에 표시하였습니다.
[get_next_line]
https://velog.io/@coh/GNL 파일을 한 줄씩 읽어오는 프로그램을 만들었습니다. read를 통해 주어진 파일을 개행이 나올 때까지 읽었습니다. 메모리 누수를 신경쓰고 문자열 함수들을 적절히 커스텀해서 구현했습니다.
[ft_printf]
https://velog.io/@coh/printf stdio 라이브러리의 printf 함수를 가변인자를 사용해 구현했습니다.
[philo]
운영체제의 동기화를 위해 mutex를 사용했습니다. c언어에서 라이브러리로 제공되는 mutex를 활용해 식사하는 철학자 문제(Dead Lock)을 해결했습니다.
[push_swap]
https://velog.io/@coh/push-swap 두 deque에 들어있는 원소들을 최대의 효율성으로 정렬한다는 목표를 달성해야 했습니다. 이를 위해 deque을 C언어로 직접 구현하였고, 이후에는 그리디 알고리즘을 구현해 문제를 해결하였습니다.
[so_long]
minilibx 라이브러리를 사용해 방향키를 사용해 할 수 있는 간단한 도트 게임을 구현하였습니다. c언어의 struct를 최대한으로 활용해 사용자와 라이브러리 그리고 게임 화면간의 통신을 구현하는데 집중했습니다.
[minitalk]
https://velog.io/@coh/minitalk-swfna6hv 두 서버간의 통신을 c언어로 구현하는 목표를 달성하기 위해 signal 라이브러리를 사용했습니다. 해당 라이브러리를 사용하기 위해서 signal, interrupt 등의 개념을 학습했습니다.
[minishell]
리눅스 쉘을 구현하는 과제였습니다. 명령어를 파싱하는 부분을 맡았습니다.
[NetPractice]
https://cheol5.tistory.com/65 네트워크에 대한 기본 개념을 배울 수 있었습니다. 특히, subnetting에 대한 개념을 학습했습니다.