AIB 섹션 5 컴퓨터공학 N512 문제해결
- 프로그래밍은 무엇인지
- 문제에 직면했을 때 그 문제를 해결할 전략은?
- 내 코드의 작성 목적과, 그 목적과 상관 없는 상황에서의 처리는?
- 예외처리 방법 중 코드 개선이 아닌 방법은?
키워드: 문제해결, 의사코드, 컴프리헨션
프로그래밍은 문제를 해결하기 위한 것. 그 기본 구조는 무엇인가 했을 때 어떤 사람은 조건문과 반복문이 전부라고 한다. 얼추 동의함. 내가 필요한 조건에 맞는지 확인하고 그것이 아니라면 반복하는 과정을 생각해볼 수 있다.
예외처리. 내가 작성한 목적에 따라 코드가 실행되지 않는 경우에 대비해 작성해놓을 부분. 그런데 잘 못 이해하고 잘 못 사용하면 오류가 쌓이고 쌓이다가 나중에 뻗어서 디버깅이 어려울 수도 있다. exception safe code는 fail하는 부분에서 코드가 깨지지 않고 그대로 진행하면서 동시에 디버깅 할 수 있다는 듯. 에러와 관련해서는 본인이 작성한 코드가 몇 년 후에도 작동할 수 있을지를 생각하고 한 줄 한 줄 작성해야 한다.
내가 생각하는 문제해결 전략은? 먼저 이해하기. 왜 이런 문제가 있고 어떤 상황에서 이런 문제가 발생하는지 생각해보기. 그 다음 어떻게 해결할 수 있는지 생각해보고 코드 자기. 코드 짠 이후에 왜 이렇게 했어야만 했는지, 간소화할 수 있는지 생각해보기.
프로그래밍에서의 문제해결방법은?
의사코드: 본 코드보다 작성이 쉽고 빠르다. 먼저 이거 정확이 어떻게 작성해야 할지 고민하는 것보다 글로써 내가 이해하기 쉬운 형태로 작성해보고 난 후에 실제 코드로 변환하는 것이 더 수월할 수 있다. 또한 글로써 작성해놨기 때문에 디버깅할 때 글로써 이해하기 쉬울 수 있다. 그리고 글이기 때문에 다른 사람과 소통할 때 용이하다. 레퍼런스
컴프리헨션: 한 눈에 이해하기 편하고, 속도도 빠르다. 하지만 복잡해진다면 직관성이 떨어지고 메모리 사용량이 증가한다.
지역/전역변수: 코드가 길기 때문에 변수들을 지역/전역으로 나눌 수 있다. 지역은 함수 내에서만 사용. 전역은 파일 전체에서 사용되는데, 전역은 전체에서 사용되는 만큼 변경해서는 안 된다.
if-else, for-else, while-else, try-except
for/while-else는 거의 써본 적이 없어서 잘 모름. for/while이 다 끝나면 else가 실행된다. break가 있다면 else는 실행되지 않는다.
댓글남기기