본문 바로가기

TIL173

라이브러리와 프레임워크의 차이? (22.09.05 TIL) 이 알고리즘의 세계는 얼마나 신기한 것인지 크롬 구글에 학습 관련 검색을 자주 했더니 구글 아이디를 연동해놨던 유튜브에도 코딩 관련 영상들이 자주 뜨는데 라이브러리와 프레임워크의 차이를 알려주는 짧은 6분 내외의 영상을 발견해서 정리하고자 글을 쓴다. 둘 다 어떤 건지는 알고있지만 바로 설명해보라고 하면 선뜻 대답이 안나오기에..나도 애매하게 알고 있는게 아닌가 싶다. 사전적 정의는 이러하다. (위키백과 참고) 라이브러리 : 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 집합으로, 개발자가 필요한 도구들을 호출하여 사용하는 방식. 프레임워크 : 프로그래밍에서 특정 운영체제를 위한 응용 프로그램 표준 구조를 표현하는 클래스와 라이브러리의 모임. 이렇게만 봐서는 한 번에 이해가 가지.. 2022. 9. 5.
리프레쉬 하기 (22.09.04 TIL) 그동안 메가테라 작업실에서만 듀얼 모니터를 사용하고 집에 와서는 조그마한 맥북으로 작업하느라 집에 와서는 오랜 시간 동안 코딩에 집중을 하지 못했다. 너무 편하게 듀얼 모니터를 사용하는 버릇을 들이다보니 창을 왔다갔다 하면서 작업하는데에 맥북 단독으로는 너무 불편했다. 그런데 생각해보니 작업실에서도 hdmi 케이블 하나로 모니터와 연결해서 쓰는데, 집에서 놀고있는 모니터를 사용해보면 어떨까 싶어서 바로 쿠팡 로켓배송으로 토요일 저녁 주문을 갈겼고 오늘 아침에 도착 해서 바로 세팅했다! 원래 FPS 게임하는 것을 좋아해서 게이밍 컴퓨터를 조립으로 하나 맞췄었고 이걸로 자주 게임을 했었는데 메가테라에 입성하면서부터 타의적으로 게임을 멀리하게 되었다. 너무 안켜주면 또 컴퓨터가 서운해하니까 (...) 주말에는.. 2022. 9. 4.
페이스 유지하기 + getter 지양하기 (22.09.03 TIL) 지금 아직 이번 3주차 마지막 과제였던 딜리버리 타이쿤을 작업중인데, 중간에 시행착오를 조금 겪어서 완성 속도가 딜레이 되었다. 어제 저녁 집 가기 전에 동기분들과 얘기를 하다가 getter 안쓰는 법에 대해 본인이 어떻게 해결하셨는지 힌트를 주셔서 그걸 내 작업물에 적용해보려다가..너무 얕게 접근한 탓인지 계속 꼬이고 꼬여서 시간을 많이 썼다. getter 를 쓰지 않는 다른 방법으로는 '객체가 다른 객체에게 메시지를 보내면, 상태 데이터를 가지는 객체가 메시지를 보내서 직접 로직을 처리하도록 구현하면 된다' 고 하긴 하는데, 사실 정확히 잘 이해하지 못했다. 중간에 한 다리를 설치해서 객체가 데이터에 직접적으로 접근하는 것을 막는 안전 장치 느낌인가? 그리고 애초에 getter 를 쓰지 않으면 안되는.. 2022. 9. 3.
고민의 늪 (22.09.02 TIL) 설계를 간단히 끝내고 최대한 빨리 구현에 돌입하라. 설계가 제대로 그려지지 않는다면 고민하지 말고 실제로 코드를 작성해가면서 협력의 전체적인 밑그림을 그려보라. 테스트-주도 설계로 코드를 구현하는 사람들이 하는 작업이 바로 이것이다. 그들은 테스트 코드를 작성해 가면서 협력을 설계한다. '객체지향의 사실과 오해' 라는 책에서 나온 구절이다. 이 내용이 책의 핵심적인 부분은 아니지만 이 말을 보고 조금 위로가 된 것 같아서 가져왔다. 실패가 무섭고 오류가 무서워서 시작하기 전 고민하는 시간이나 설계하는 시간이 길어질 때가 있다. 고민하는 시간과 설계하는 시간에 많이 투자했다고 해서 실패와 오류가 적게 발생하는 것이 아닌데도 말이다. 홀맨님도 말씀하셨지만 일단 동작하게 하는 것이 중요하다. 쓰레기 코드를 만.. 2022. 9. 2.
협력하는 코드 (22.09.01 TIL) 사람들의 가장 흔한 실수는 협력이라는 문맥을 고려하지 않은 채, 객체가 가져야 할 상태와 행동부터 고민하기 시작한다는 것이다. 중요한 것은 개별 객체가 아니라 객체들 사이에 이뤄지는 협력이다. 훌륭한 객체지향 설계자는 객체들 간의 요청과 응답 속에서 창발하는 협력에 초점을 맞춰 애플리케이션을 설계한다. 협력이 자리잡으면 저절로 객체의 행동이 드러나고 뒤이어 적절한 객체의 상태가 결정된다. '객체지향의 사실과 오해' 라는 책에서 나온 구절이다. 이 구절 뿐만 아니라 사람들이 오해하고 있는 사실이나 실수 관련 예시를 든 것들이 전반적으로 너무 내 이야기를 하고 있는 문장들이라 헐 맞아!! 라고 공감하면서 읽었다. 메가테라에 온 후의 경험은 아니지만 협력과 의존이 다르다는 것을 (물론 개념적인 의미로 다르다는.. 2022. 9. 1.
응용은 어떻게 하면 좋을까 (22.08.31 TIL) 어제 작업했던 TodoList 도 어찌 어찌 구현을 해냈는데, 마카오 뱅크에서 또 대단한 적수를 만났다. 이걸 얼른 끝내야 내일부터는 딜리버리 타이쿤에 집중할 수 있기 때문에 오늘 밤을 새서 작업을 하려고 한다. 이제까지는 이렇게 복잡하게 나눠지는 프로그램을 짜 본적이 없기 때문에 구상이랄 것도 없이 그냥 클래스를 켜놓고 그 위에서 테스트 코드를 반복하며 작업했었다. 그런데 이제는 클래스별로 각자의 기능들이 살아 숨쉬고 있는 상태에서, 또 연결도 잘 되어야 한다. 결합도를 낮춰야 하는 그런 수준까지는 당연히 아직 갈 수는 없고 지금은 최대한 이 클래스에 이 기능이, 이 변수들이 있는 게 맞는지 부터 고민을 하고 분석을 하는 중인데 정말 정말 어렵다. 이렇게 모니터만 뚫어져라 쳐다보고 있는 걸 홀맨님께서 .. 2022. 8. 31.