티스토리 뷰

- 운영체제 시리즈 : nauni.tistory.com/63

 

운영체제 시리즈 13. File Systems

File File이란 관련된 정보의 모음(a named collection of related information)이다. 비휘발성 보조기억장치(디스크)에 저장된다. 저장장치를 file이라는 논리적 단위로 볼 수 있게 해준다. 연산에는 create, rea..

nauni.tistory.com

개념위주의 내용이라 오늘은 그렇게 오래 걸리지 않았다. 그런데 내일은 운영체제 시리즈 정리를 못 할 것 같다.. 오늘 알고리즘 문제를 풀다가 막혀버렸기 때문이다.. 😣

 

- 마스터즈 코스 

 

배열과 리스트의 차이, 링크드 리스트의 구현, 자료구조의 중요성, 빅오 계산법, call by reference 등 에 대해 수업을 들었다. 내일 운영체제 시리즈 대신 오전에 간단하게 정리할 예정이다.

 

[리팩토링 과정]

리팩토링을 일부했다. 왜 switch문 보다 if문을 쓸까 얘기해 봤는데, switch문을 사용할 경우 기능단위의 메소드 분리가 잘 안 되기 때문이다라는 결론을 내렸다. 어쨌거나 많은 기능을 하는 메소드들이 같이 묶여있게 되니까 말이다. switch문을 결국 사용했지만, 약간의 개선은 case별로 메소드를 나눠주어서 그나마 기능별로 분리하려고 노력했다.

 

switch문을 안 쓰고 싶은데, default문 때문에 쓸수 밖에 없게 되었다ㅠㅠ 예외처리를 다른데서 해주면 될 것 같긴 한데, 지금 상태의 코드에서는 default문으로 받아주는게 제일 좋아보였다. 처음부터 제외하고 작성했으면 더 편리했을 것 같긴한데 이번에는 이렇게 만족하기로 했다. 그룹 세션에서 switch문을 다르게 사용할 수 있는 방법들에 대해 알게 되었다. 람다식으로 사용하는 방식, yield를 사용하는 방식도 있었다. (일반적으로 쓰는 방법 + 2가지 정도 알려줬던 것 같다)

case를 나누어 다르게 작동하는 메소드를 abstract class나 interface로 나누는 방식도 생각해보게 되었다. class 자체는 많아지지만 메인 로직 자체는 더 깔끔해지는 효과가 있을 것 같다. Enum에서 function을 받아서 사용하는 방식도 어디선가 봤는데, 그때 너무 어려워서 잘 이해하지 못햇다. 람다식을 공부해야겠다는 생각이 들었다!! 요새 자바 문법 중에 람다, 지네릭에 대해 공부하고 싶은데, 이번 주말에는 조금 볼 수 있었으면 좋겠다! 할게 너무 많다~~😅

 

예외처리는 해주지 않았고, 예외 케이스에서 예외만 던지게 작성했다. 입력값에서만 예외체크를 해주려고 했는데, 자료구조를 가지는 class에서 해주는 방법이 더 좋을 수 있다는 것을 알게 되었다. 왜 controller나 input에서 해주지 않고 자료구조 클래스에서 해주는게 깔끔한지 조금 생각해보게 되었다. 클래스에서 public 메소드를 만들어 처리하지 않아도 되기 때문이 아닐까?! 예외처리는 여전히 어렵다.. 😥

 

LinkedList 구현시에 뭔가 좀 더 깔끔하게 하는 방법이 있을 것 같은데 모호하게 중복되지만 합칠 수 없는 코드들이 있어서 좀 아쉽다. 

 

다 작성하고 나서야 테스트코드를 조금 작성해보게 되었다. TDD로 작성해보고 싶은뎈ㅋㅋㅋㅋㅋ 아직은 테스트 코드를 짜는게 익숙하지 않아서인지 어려운 것 같다..ㅎㅎㅎ 이번에 초반에 작성하다가 못했는데, 이게 아직은 메소드의 시그니쳐가 계속 바뀌기 때문인 것 같다. 좀 더 구체적으로 전체적인 상황을 그리고 코드를 구성하다보면 이런 방식은 다듬어질 수 있지 않을까 생각한다. 전체적인 요구사항을 파악하고 진행하는 것의 중요성! readme 정리의 필요성을 다시 느꼈다. 테스트 코드에 대해 얘기해 보면서 실제 상황을 테스트 하려고 하기 보다는 내가 이런 상황을 테스트 코드에 입력했을 때, 그게 맞게 나오는지를 확인하는 방식으로 생각을 해야 테스트 코드도 작성하기 쉬워지는 것 같다. 테스트 코드도 내가 작성하는 코드니까 생각을 해야한다.ㅎㅎㅎ 익숙해지면 너무 유용할 것 같다. 잘 안되더라도 후 테스트코드라도 작성하는 연습, print만 찍어내는 테스트 코드라도 작성하는 연습을 미션 진행하면서 계속 해봐야지!

 

 

- 알고리즘

 

카카오 기둥과 보 문제 안 풀린다.. 🤑 2~3시간째 모르겠닼ㅋㅋㅋㅋㅋㅋ 추가만 되고 삭제는 안 된다. 삭제가 막혀서 더 생각해보니까 추가도 문제가 있을 것 같다. 좀 더 생각해보고 내일 저녁에도 안 풀리면 인터넷 및 답지 찬스를 사용해야겠다. 될 것 같은데..ㅎㅎㅎ 역시 카카오 문제 어렵닼ㅋㅋㅋㅋ 할 수 있을까!?!?ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ 뭔가 기둥과 보를 어떻게 표현할 건가! 이게 키포인트 같은데 생각한 방식이 안 맞는다.ㅎㅎㅎ 주어진 answer의 형태로 처리하는 방식으로 진행해야 되는 건가!?ㅎㅎㅎ 알고리즘 자료구조와 유명한 알고리즘 skill들을 공부해야겠다. 언제하려나?!ㅎㅎㅎ

 

정리 

끝에 알고리즘 문제 푸는데 안 풀려서 머릿속이 정리가 안 된다.ㅎㅎㅎ 이래서 알고리즘 문제풀이는 좀 무섭다. 안 풀리면 다른 걸 아무것도 못하게 해서..ㅠㅠㅠ 뭔가 특별한 테크닉이 필요한 문제가 아닐 것 같은데..풀 수 있을 것 같은데.. 내일은 풀렸으면 좋겠다. 일주일에 카카오 2문젴ㅋㅋㅋㅋ 할 수 있을까?ㅎㅎㅎ

 

[ 내일 해야할 일 ]

- 마스터즈 코스 수업 정리 + queue, deque, priority queue 같이 정리

- 부스터 코스 미션 진행

- 알고리즘 문제 풀기

 

 

'TIL(Today I Learned)' 카테고리의 다른 글

21.01.14 개발공부일지  (2) 2021.01.14
21.01.13 개발공부일지  (0) 2021.01.13
21.01.11 개발공부일지  (0) 2021.01.11
21.01.10 개발공부일지  (0) 2021.01.10
21.01.09 개발공부일지  (0) 2021.01.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함