본문 바로가기

카테고리 없음

알고리즘을 공부해본다.!

 안녕하세요! 오늘의 주제는 알고리즘 공부입니다.

 

 저는 실습을 나와, '현재 종사하는 회사의 외주를 맡아 한 si업체가 만든 시스템의 코드를 보고 공부하며 유지,보수하고 있다'는 사실은 저번에 포스팅했었는데요..! 

 음.. 개발의 길이 까마득하게 멀고 먼 저도 4학년이 끝나고 취업을 하면 현업에 투입이 되겠죠?

저와 마찬가지로 누군가는 si업체에 취직할 것이고.. 그 분도 어느 회사의 외주를 맡아 시스템을 만들 것입니다.

그렇다보니, 저처럼 부족한 실력인 분들도 코드를 짜게되겠죠!? 그래서.. 뭔가 지금 종사하는 회사의 시스템 속 소스는 '어느부분은 참 깔끔하고 잘 만들었네' 싶은 부분도 있고, 저랑 비슷한 수준의 코드.. 큼큼.. 를 작성한 부분도 있습니다.

 즉, 최적화는 고려하지 않은 상태로 그냥 돌아가는 시스템인 것이죠! (물론, 그 분도 노력하여 나중에 훌륭한 개발자가 되실겁니다^^) 

 

 흔한 일은 아닌데, 강의실에서 수업 들었던 때가 생각나네요ㅎㅎ 어느 강사분께서 1학기 강의를 맡아 파이썬 강의를 진행하셨었는데 제가 학생 강의대표였기때문에, 강의 중 간단한 실습문제들을 앞에 나가 손코딩하거나 교수님 컴퓨터로 학생들이 볼 수 있게 문제 푸는 경우가 많았어요! 어느 날, 문자열을 입력받아 해당 문자열과 타 문자열을 비교하는 프로그램을 짰는데, 강사분께서 '잘 짰는데, 반복문 전에 문자열 길이를 변수에 넣고 그만큼만 돌렸다면, 문자열의 길이를 리턴하는 함수를 반복문 루프마다 계속 호출하지 않아도 된다.'라고 하셨던 것이 기억나네요!

 이게 바로 제가 태어나서 처음 접한, 최적화라는 것이 아닐까 싶어요!

 

 코딩테스트를 간혹 보며 학부생활을 했는데, 코딩테스트에서 자바를 사용했을 때, 테스트 케이스를 다 맞췄지만, 속도면에서 오답처리 되었던 기억이 있습니다ㅠㅠ

 코딩테스트는 개발자의 역량을 조금이나마 판별하는 역할(?)을 하기에 요즘은 다들 코딩테스트를 본다고 생각하는데요.. 코딩테스트에는 알고리즘과 자료구조와 같은 컴퓨터공학 기초 과목들을 매우 중요시하죠! 그렇기에 제 역량을 위해 (,코딩테스트 뿐만 아니라, ) 앞으로 개발자 인생에서 가장 중요한 알고리즘, 자료구조에 대하여 진지하게 공부를 해보려 합니다.

 여태까지 주언어라고 생각했던 자바를 뒤로하고, 새로운 언어 C++을 선택해서요! (아직 딥러닝,머신러닝 쪽을 생각할 것이 아니며, 앞으로 게임개발에 한발 다가서고자 자바,파이썬이 아닌 C++을 선택했습니다. ) 

 저는 강의를 들으며 조금이나마 시간을 단축하고, 습관적으로 문제를 풀어가며, 저한테 제일 잘맞는 코드를 찾아가는 과정을 밟을 생각입니다ㅎㅎ 

 지금 당장은 진행속도가 매우 느리겠지만! 언젠가 제가 푼 알고리즘 문제들이 가득 쌓인 블로그를 볼 날을 기대합니다.^^ 감사합니다.