Skip to content

HyeonHak/42_Seoul

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1. 학습 날짜

2020/02/24

2. 학습 시간

10 : 10 ~ 18 : 00 (집앞 카페), 21 : 00 ~ 22 : 00 (자가)

3. 학습 범위 및 주제

Visual Studio Code 환경 설정 & wsl 설정 & 과제 확인

4. 동료 학습 방법

슬랙을 통해 wsl 상세 설정을 배우고 과제에 대한 내용을 보았음

5. 학습 목표

기존에 visual studio를 사용하였으나, code를 사용하면 더 편하다는 피드백을 받아 (슬랙 ID : jjo) 환경을 직접 변경해보고 사용한다.

6. 과제 제출

http://git.innovationacademy.kr/hyejo/Libft

7. 상세 학습 내용

상세히 학습보단 환경구축에 많은 시간을 소요했습니다.
주로 슬랙과 구글링을 이용하였으며, vocode나 vim, 여러 환경을 찾아보았습니다.

8. 학습 내용에 대한 개인적인 총평

별도로 과제를 준다는 말을 보고 libft는 절대 아닐거야 라며 스스로 다짐하며 여유있게 환경을 구축하려는 계획을 가졌으나, 상당히 까다로웠고, 슬랙의 도움이 없었다면 혼자 하지 못했을 것이라는 생각을 했습니다.
라피신을 하면서 궁금한 점이 생기면 바로바로 옆사람에게 물어볼 수 있었지만, 그런 환경이 조성되어 있지 않아 상당히 불편했고 스스로 한다는게 오랜 시간이 걸리고 어려웠습니다.

9. 다음 학습 계획

part 1 부분의 절반을 학습할 생각이고, 알고리즘도 꾸준히 할 생각입니다.

1. 학습 날짜

2020/02/25

2. 학습 시간

09 : 30 ~ 18 : 00 (집 앞 카페)

3. 학습 범위 및 주제

libft.h
ft_tolower.c
ft_toupper.c
ft_strdup.c
ft_bzero.c
ft_strlen.c
ft_memset.c

4. 동료 학습 방법

카카오톡을 이용해 (jjo, hyulim, jaejeon, Hjeon) memset에 대한 의견을 나눴습니다.

5. 학습 목표

libft의 part1의 대부분을 끝내기..

6. 과제 제출

http://git.innovationacademy.kr/hyejo/Libft

7. 상세 학습 내용

ft_memset을 구현하면서 의문이 들었다. 인자로 void 포인터를 받는데 함수 내에서 데이터 타입을 어떻게 알 수 있는지 궁금했다. 또한 memset에서 받는 두번째 int ch인자는 하위 8비트만 사용하는데 왜 굳이 int형을 사용했는지 궁금했다. 4개의 아래주소를 통해 궁금증을 해결하였다. https://nxmnpg.lemoda.net/ko/3/memset https://kamang-it.tistory.com/entry/C-memoryhmemset%ED%95%A8%EC%88%98%EC%99%80-%EB%B0%B0%EC%97%B4%EC%9D%98-%EC%B4%88%EA%B8%B0%ED%99%94 https://technote.kr/150 https://stackoverflow.com/questions/5919735/why-does-memset-take-an-int-instead-of-a-char memset에서 받는 size_t n은 배열의 갯수가 아닌 메모리 바이트의 갯수인것, 즉 1byte = char로 받으면 된다는 것을 알았다. 두번째 인자를 int로 받는 방법은 stackoverflow의 댓글을 봤는데, 해석이 안되어서.. 나중에 확인해야 할 것 같다..

8. 학습 내용에 대한 개인적인 총평

본격적으로 첫 과제를 시작해보았기 때문에 어려웠습니다. 가장 처음에 memset을 시작하다보니 의문점이 많이 들었고, memset을 하다가 다른 함수를 구현하다가 다시 memset으로 돌아와 의문점을 해결했습니다.
하나의 헤더에 모든 함수를 다 넣는게 맞는가 싶어 여러 방법을 찾아보기도 했고, makefile을 만들기 위해 맛보기로 조금 보았습니다.
여러가지를 만지다보니 정작 눈앞의 진도는 나간게 얼마 없어 아쉬웠고, 내일부터는 진도부터 나갈 생각입니다.

9. 다음 학습 계획

libft의 part2 부분을 마무리 짓는다.
학습 보고서 쓸 준비를 한다.

1. 학습 날짜

2020/02/26

2. 학습 시간

10 : 10 ~ 18 : 00 (집에서 조금 먼 카페), 22 : 00 ~ 23 : 30 (자가)

3. 학습 범위 및 주제

libft part2 대다수

4. 동료 학습 방법

calloc을 구현할 때 슬랙을 이용해 서울 교육색과 다른나라 교육생들에게 피드백을 받았습니다. (Sujung, 42saopaulo_anolivei, tet, aurollan_42Lyon)
size_t에서 발생한 세그먼트 에러에 대해 슬랙을 이용해 피드백 받았습니다. (Hyejang , Minckim, Donghwki)

5. 학습 목표

libft part2을 다 풀고 보너스부분을 진행해보자..

6. 과제 제출

http://git.innovationacademy.kr/hyejo/Libft

7. 상세 학습 내용

http://man7.org/linux/man-pages/man3/calloc.3p.html 부분을 이용해 calloc에 대한 개념을 이해하고 구현하였으나, malloc을 한 후 초기화 하는 과정에서 주소 접근 에러가 발생했습니다.
슬랙을 이용해 피드백을 받았고 기존에 malloc을 size와 count를 곱해 메모리를 할당하고 size_t 포인터로 받은 뒤 while문으로 0부터 size와 count를 곱한 값을 0으로 초기화했으나, i가 1씩 증가할 때 정말 1씩 증가하는 것이아닌 size_t 값만큼 증가하여 에러가 발생함을 알 수 있었습니다.
strtrim함수를 구현할 때 맨 첫글자와 마지막 글자만 제거 하는 줄 알 고 구현하였으나, 자기전에 다른 교육생분이 다른 예시를 보여주어 수정사항을 알게 되었습니다....

8. 학습 내용에 대한 개인적인 총평

part2 전체를 다 하진 못했지만, 제 판단하에 진도를 많이 나갔으며, 24 ~ 25일에 헤매고 있었던 저와 다르게 집중할 수 있었던 날이라 매우 만족스러웠습니다.
많진 않지만 정리도 해보고 Wiki를 적고 ssh를 이용해 git push도 다시 해볼 수 있었습니다.
또한 슬랙을 이용해 다른 나라 교육생들과 소통을 하면서 42 시스템이 잘 구축되어 있다고 느끼고 앞으로 프로젝트를 하면서 큰 도움을 받을 수 있을꺼라 생각할 수 있었습니다.
아쉬웠던 부분은 몇가지 함수를 구현 할 때 man page를 보면서 반환값이 명확하게 나와있지 않아 여러 방법을 통해 찾아보았으나, 다 달랐기 때문에 그 부분이 조금 아쉬웠습니다.

9. 다음 학습 계획

ft_split.c
ft_itoa.c
ft_strmapi.c
Bonus part

1. 학습 날짜

2020/02/27

2. 학습 시간

11 : 30 ~ 18 : 00 (집에서 조금 먼 카페) 20 : 30 ~ 21 : 30 (자가)

3. 학습 범위 및 주제

ft_strmapi.c
ft_itoa.c
ft_strtrim.c
ft_lstnew.c
ft_lstsize.c
ft_lstlast.c

4. 동료 학습 방법

슬랙을 이용해 함수 포인터, lstnew에 대한 내용 이해 (sunpark, jko)

5. 학습 목표

libft part2 마무리, Bonus part 마무리, libft 테스트, 수정해야 할 ft_strtrim.c

6. 과제 제출

http://git.innovationacademy.kr/hyejo/Libft

7. 상세 학습 내용

유튜브를 이용해 함수포인터에 대한 내용을 이해하고 ft_strmapi를 구현하였습니다.
ft_lstnew.c 함수를 구현한 뒤 테스트 과정 중 main문 내에서 구현할 방법을 몰랐는데, 슬랙을 이용해 해결했습니다.
ft_strtrim.c 함수를 수정하면서 25줄이 넘어가서 추가적인 함수를 구현하면서 네이밍을 신경써 가독성을 높이기 위해 노력했습니다.
ft_lst에 관련된 함수를 구현하면서 링크드리스트에 대한 개념을 이해하고 구현하였습니다.
ft_lstadd_front 에 대한 함수는 이해가 조금 부족해 추가적으로 학습..
'.'과 '->'의 차이를 구분하기 위해 https://devbot.tistory.com/entry/C-%EA%B3%BC-%EC%B0%A8%EC%9D%B4 링크를 이용해 학습했습니다.
동적으로 생성한 데이터가 아닌 경우 포인터가 아닌 참조자를 사용한다는 내용을 확인했습니다.
libft test 파일을 찾아 디버깅을 하려 했으나, 에러가 발생했습니다.
확인 결과 gcc가 아닌 clang으로 설정을 바꿔야 했으며 설정을 바꾸고 진행한 결과 무수히 많은 버그를 찾을 수 있었습니다.

8. 학습 내용에 대한 개인적인 총평

1차적으로 libft를 구현해 스스로 만족스러운 진행이였습니다. (테스트 미흡)
1차적으로 구현해서 앞으로 무수히 쏟아질 에러에 대해 기분이 좋습니다.
링크드리스트에 대한 지식이 미흡하나, 어느정도는 있던 상황이라 대체적으로 구현이 어렵진 않았습니다.
makefile을 작성해야하는데 감이 잘 안잡히고.. 맞는지 모르겠습니다만 많은 양의 코드를 makefile로 만들면 분명 제 실력향상이 있을거라고 생각합니다.
다른 사람의 깃의 데이터를 확인하고 테스트 해보는게 처음이라 상당히 흥미로웠습니다.
저녁에 테스트케이스를 돌려본 결과 많이 틀렸음을 확인하고 좌절한 상태입니다.

9. 다음 학습 계획

libft 전체적인 테스트 & Makefile 이해와 작성

1. 학습 날짜

2020/02/28

2. 학습 시간

00 : 00 ~ 02: 40 (자가) 11 : 00 ~ 13 : 00 (집 앞 카페) 14 : 00 ~ 20 : 00 (선릉역 카페)

3. 학습 범위 및 주제

libft test

ft_split

ft_lstadd_front

ft_lstsize

ft_lstadd_back

makefile

4. 동료 학습 방법

집 앞 카페에서 hjeon, yuno님과 모여서 과제를 진행했다.

5. 학습 목표

libft 테스트 완료 & 다음 과제 선택 후 시작

6. 과제 제출

http://git.innovationacademy.kr/hyejo/Libft

7. 상세 학습 내용

memlcat에 대한 에러를 잡는 중.. memlcat을 하면서 src의 값이 사라지는 것을 발견했다..
한시간의 디버깅 끝에 복사 후 마지막에 dst[i]값에 0을 넣어주었는데 i가 아닌 dst_len + i 를 넣었어야 했다.. 세번째 인자값인 size가 dst보다 작다면 바로 반환하는 부분을 잊지말자..
itoa는 숫자의 길이를 구해주고 변환하도록 했는데, 0값을 예외처리를 하여 에러를 해결했다.
ft_lstadd_back을 구현하면서 인덱스로 바로 접근했다가 에러가 발생했고.. hjeon님의 next값을 하나하나 가줘야한다는 피드백을 받고 해결했다.
ft_lstmap.c를 구현하면서 한번에 malloc을 다해버리고 f함수를 사용했으나 틀렸고, hjeon님이 한개한개를 해주되, 에러가 발생하면 모든 t_list를 free하라고 해주셨다. 만.. 해결이 어려워서 많은 도움을 받아 해결했다.. 기존의 코드들을 재사용을 잘 안했으나 활용하여 해보니 상당히 편리했다.
makefile을 직접 구현해보고 사용하니 너무.. 편했다. 특히 많은 코드 중 수정된 코드만 다시 컴파일 해주는게 상당히 좋았다.

8. 학습 내용에 대한 개인적인 총평

libft를 테스트까지 끝내서 뿌듯했습니다. 오랜만에 라피신을 같이 한 교육생들과 함께 진행하니 얼마지나지 않았지만 라피신의 느낌이 들어서 좋았습니다.
다들 클러스터에서 공부하는 분위기로 하지 못한 부분을 아쉬워했습니다.
같은 공간에서 같은 부분을 고민하고 나눌 수 있다는 것이 정말 좋았구나를 느낄 수 있었고, 나름대로 42서울의 시스템의 소중함을 다시한번 일깨워주는 계기가 되었습니다.
c가 아닌 다른 부분도 해보고 싶지만 지금이 아니면 c를 할 기회가 없을거라 생각해 소중히 과제를 진행하고 있다는 점에 42서울에 감사함을 느낍니다.
빠른 시일에 클러스터로 돌아가고 싶고, 동료들과 다양한 얘기를 나눌 수 있었으면 좋겠습니다.

9. 다음 학습 계획

다음 서클 선택
조금 모자란 makefile을 다시 공부하기
좋지 못한 상황이지만 다른 교육생들과 만나보기

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors