본문 바로가기

728x90

Computer Science

[CS] debugging 프로그래밍하다 보면 가끔씩 코드가 내가 원하는 대로 안 돌아갈 때 있잖아? 그럴 때 문제를 찾는 과정을 디버깅이라고 해. 간단하게 말하자면, ‘코드가 왜 이렇게 행동하는지 조사하는 과정’인 거야. 맨 아래 참고 영상에서도 말하듯이, 코딩을 잘하려면 디버깅을 잘 하는 것이 정말 중요해. 디버깅을 잘 하기 위해서 삽질도 기꺼이 해보자구.디버깅의 기본, '로그 확인하기'디버깅의 가장 기본적인 방법은 로그를 확인하는 거야. 로그라는 건, 코드가 실행될 때 '여기까지 왔어요!', '이 변수 값은 이거예요!' 하고 기록을 남기는 거야. 너 블로그(blog)나 브이로그(vlog) 들어봤지? 그런 '기록한다'는 뜻의 '로그'야. 예를 들어 파이썬에서는 print() 함수를 써서 로그를 남길 수 있어. 이렇게: .. 더보기
[Algorithm] O(logN) == O(log₂N) 아주아주 오랜만에 묵혀두었던 기초 CS 꺼내보기..! ( ·•︡_•︠)  CS에서 시간 복잡도 얘기할 때 자주 듣는 "O(logN)"이라는 표현, 들어봤지? 여기서 궁금할 수도 있는데, O(logN)과 O(log₂N)이 같은 거라는 걸 알아두면 좋아. 쉽게 말하면, O(logN)은 O(log₂N)의 줄임말이야. 왜냐면 컴퓨터 과학에서 로그의 밑(base)은 보통 2로 취급되거든. 그래서 "logN"이라고만 써도 사실은 "log₂N"을 의미하는 거야.       그러니까, O(logN)과 O(log₂N)은 같은 의미를 가진다는 거지. 실제로 시간 복잡도를 따질 때, 로그의 밑이 무엇이냐는 크게 상관없어. 밑이 달라진다고 해서 O(log₂N)이 O(log₃N)처럼 다른 표기가 되진 않아. 왜냐면 로그의 밑을.. 더보기
[Network] 비동기(Async)는 기다리지 않는다 refer to URLSession Asychronous 통신은 Response를 기다리지 않기에 Request를 보낸 Thread가 다른 일을 편안하게 할 수 있다. like 아주 오래된 연인들 ,, Response를 기다리지 않고 다른 일을 하고 있는 이런 상태를 Non Block 상태라 하는데, Non Block 상태로 자기 일을 해나가는 Async(비동기식) 방식은 Sync(동기식) 방식에 비해 성능이 좋을 수 밖에 없다. (하지만 Response를 받고 처리해야 하는 서비스 방식에는 적합하지 않다.) Sync 방식은 이와 반대로 생각하면 쉽다. 하염없이 Response를 기다린다. 마치 중국 사천성에 유학 간 푸바오 소식을 기다리는 나처럼.. Request를 보내면 시간이 얼마나 걸리든 그 곳에.. 더보기

728x90