아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
현명한고슴도치272
현명한고슴도치27221.03.06

프로그래머로 이직 하는데 알고리즘 공부가 필요한가요?

프로그래밍에 관해 전혀 모릅니다

생활코딩을 통해 웹 서비스 만들기 부터 차근 차근 알아 가려는데 코딩 공부에 대해 알아 보다보니 알고리즘이라는 말아 심심찮게 나오더라고요

알고리즘 공부가 왜 필요한지와

꼭 필요 한지가 궁금 합니다

55글자 더 채워주세요.
답변의 개수
20개의 답변이 있어요!
  • 안녕하세요

    현업 6년차 프로그래머입니다. 먼저 프로그래머로서 이직을 축하하고 환영합니다.

    좋은 강의를 보고 계시네요. 저도 늘 추천하는 강의입니다.

    "알고리즘 공부가 왜 필요한가"

    라는 질문은 결국 "이 복잡해보이는 로직이 실제 현업에서 쓰이는가?" 라는 질문이기도 합니다.

    당연히 No 구요. 실제로 알고리즘 문제를 로직에 반영하는 서비스는 거의 없습니다.

    그럼에도 불구하고 왜 알고리즘을 해야 하냐면..

    컴퓨터 공학적 사고를 기르기 위함입니다.

    사람은 이성이 아닌 감정의 동물로서 논리적이고 이산적이지 않고 감정적이고 변칙적입니다.

    알고리즘의 순서를 익혀나가다보면 "로직이 삼천포로 새지 않는 강건한 시스템 설계"를 할 수 있는 훈련이 됩니다.

    프로그램 로직의 순서를 설계하고 예상치 못한 상황들을 막을 수 있는 실력이 된다는 의미입니다.

    도움 되셨길 바랍니다.


  • 안녕하세요!

    알고리즘 필요 이유에 대해 알려드립니다^^

    알고리즘은 보통 효율성을 위해 공부합니다.

    요새 4차산업혁명으로 데이터의 중요성이 부각되고있죠^^

    데이터는 필연적으로 쌓입니다.

    데이터 가공을 할때 하드웨어 스팩으로는 한계에 부딪히는 날이 옵니다. 그럴때 필요한게 알고리즘입니다.

    천만건의 데이터를 가공하는데 있어 한개의 데이터당 알고리즘의 지식이 없는 개발자가 짠 코드가 알고리즘을 적용한 코드보다 0.05초의 손실이 발생한다고 하면 무려 5일의 손실이 발생합니다.

    요새 광풍인 코인채굴에도 적용이 될 수 있겠습니다.

    알고리즘이 잘 짜여진 채굴코드가 0.05초 더 빠르게 채굴가능하다고 할때 1000만번의 수행을 했을때 다른 코드보다 무려 5일을 더 아낄 수 있습니다. 수행횟수가 늘어 날수록 차이는 기하급수적으로 늘어나겠죠?

    똑같은 물리적인 시간을 사용하지만 누군가 코인 1개 채굴할 동안 어떤 사람은 0.01개도 채굴하지 못할 수도 있는게 알고리즘의 차이입니다.

    모든 개발자는 0.1초라도 줄이기 위해서 노력합니다.

    웹사이트나 게임 모든 프로그래밍엔 알고리즘이 필요합니다.

    알고리즘을 모르면 개발자가 아닌 그저 코더밖에 될 수가있습니다. 실무에서는 알고리즘이 필수적으로 필요합니다.


  • 알고리즘은 특별한 무언가가 있는게 아니라, 프로그램이 실행되기위한 가이드 입니다.

    필요한게 아니라 알고리즘으로 이루어진게 프로그래밍 입니다.^^

    어떤 사이트를 만들던, 어떤 프로그램을 만들더라도 어떻게 동작할건지에 대해서 결정을 해야합니다.

    질문하시는 걸로 봤을때는 알고리즘이라는 단어의 의미를 조금 잘못알고 계시지 않은가 싶습니다.

    알고리즘의 방법론에는 여러가지가 존재하고, 사용하는 방식에 따라서 선택권이 있긴하나,

    알고리즘을 왜 공부해야하냐는 질문은,

    수학을 하는데, 산수를 왜 배우냐는 질문과 같습니다.

    즐거운 주말되세요!


  • 프로그래밍을 한다고 하면 제일 먼저 생각하는 것이 프로그래밍 언어부터 생각하시는 분들이 많을 겁니다. 따라서 프로그래밍 언어와 비유해서 설명해드리도록 하겠습니다.

    프로그래밍 언어를 잘 안다고 해서 프로그래밍을 잘 하는 것은 아닙니다.

    프로그래밍은 결국엔 표현할려고하는 것을 컴퓨터를 통해서 구현시키는 것인데요. 프로그래밍 언어라는 것은 단지 도구일 뿐입니다.

    PowerPoint를 예로 들면 PowerPoint를 잘 다룬다고 해서 프리젠테이션 발표자료를 잘 만드는 건 아니니까요. 결국 머리속으로 표현할려고하는 발표자료를 잘 구상한뒤에 PowerPoint라는 도구를 통해서 작성되는 것 처럼요. 잘 모르는 기능은 인터넷을 통해 검색해서 찾아가면서 작성하면 됩니다. 프로그래밍도 똑같습니다. 여기서 머리속으로 표현할려고 했던 발표자료를 잘 구상하는 작업이 바로 "알고리 즘" 이라고 보시면 됩니다. 결국 알고리즘도 프로그래밍으로 표현되지만 내가 표현햐려고 했던 일을 컴퓨터에게 올바르게 혹은 효율적으로 시키기 위해서는 알고리즘을 공부하는 것이 필요합니다.


  • 안녕하세요.

    알고리즘(algorithm)은 주어진 문제를 논리적으로 해결하기 위해 필요한 절차, 방법, 명령어들을 모아놓은 것입니다.

    예를 들면 라면을 먹는다고 하면 어떻게 해야 하는지 알아보겠습니다.

    냄비에 물을 넣는다. -> 가스렌지에 올리고 불을 켠다 -> 물이 끓으면 라면을 넣고 스프를 넣는다 -> 라면이 익으면 불을 끈다. -> 그릇에 옮겨담는다. -> 먹는다.

    아니면

    냄비에 물과 라면, 스프를 넣는다.-> 가스렌지에 올리고 불을 켠다. -> 라면이 익으면 불을 끈다. -> 냄비 채 먹는다.

    이렇게 처리하는 방법이 다 다릅니다. 어떻게 처리하냐에 따라 더 효율적이 방법이 나오겠죠. 이런 것을 구상하는 것이 알고리즘입니다. 로직이라고 해도 될것 같습니다.

    이런 알고리즘을 프로그램밍 언어를 사용하여 구현해야 되는 것입니다. 그래서 프로그래밍 언어를 배우는 것도 좋지만 그 안에 알고리즘이나 로직을 구현하는 연습을 많이 하시면 다른 언어를 배울 때도 큰 도움이 됩니다.


  • 채용프로세스중에 코딩 테스트가 있습니다.

    코딩 테스트가 말이 코딩테스트지 거의 알고리즘이라고 볼 수 있습니다.

    코드가 정상적으로 동작하는 것외에 빠르게 동작을 해야하기 때문에 알고리즘이 필수 입니다.

    모든 회사가 코딩테스트를 보는 것은 아니지만 많은 회사에서 보고 있다보니 알고는 있어야 합니다.


  • 사전적 의미의 알고리즘은 어떤 문제를 해결하기 위한 절차, 방법을 뜻합니다.

    간단히 말해서 알고리즘은 프로그래밍 하기전에 사전작업입니다.

    프로그래밍을 하려면 어떤식으로 한다는 계획이 있어야겠죠?

    이러한 알고리즘 즉, 논리구조를 만들어 계획대로 프로그래밍 하는 것을 말하는 것이죠

    알고리즘 없이 프로그래밍 한다는 건 말도 안되는 겁니다.

    결국 알고리즘 없이 프로그래밍 한다라는 건 남이 해놓은 코드를 따라 한다 이정도로 생각하면 될거 같습니다.


  • 안녕하세요, 코가 딩딩한 코딩쟁이입니다.

    알고리즘이 왜 필요하신지 질문하셨는데요, 알고리즘 배워서 그것을 그대로 써먹는 다기보다는 알고리즘을 공부하고 것을 활용하는데에 목적이 있습니다.

    한가지 예시를 들어보겠습니다.

    대량의 데이터를 처리해서 사용자에게 결과를 줘야하는 상황이 생깁니다.

    이때 누구나 언어만 배우고 대량의 데이터를 처리해서 결과 값을 줄 수 있습니다.

    하지만 이때 알고리즘 공부를 해두셨다면 데이터를 처리하고 결과를 내보내는 과정에서의 효율성을 더 좋게 해서 아웃풋을 내놓을 수 있습니다.

    쉽게말해서 알고리즘 공부는 우리가 빠르고 효율적인 프로그램을 어떻게 구현할지를 도와줍니다. 따라서 공부를 하시는 것이 좋다 생각합니다.

    알고리즘에 관하여 공부를 하고 싶으시다면 백준 온라인 저지 사이트를 이용하시면 좋습니다.


  • 어느 분야든 가고싶은 회사에서 요구하는 사항들을 준비하는 것은 필수입니다. 최근 프로그래밍 업계에서 코딩테스트를 실시 하는 것이 트렌드이긴하죠. 원하시는 기업이 어디인지는 모르겠지만 카카오 네이버 등 대부분의 중견 이상 기업들은 서류 심사 이후 코딩테스트를 실시합니다. 기본 코딩 실력도 보는 것이겠지만 불필요 인력을 거르는 하나의 수단으로 볼 수 있겠습니다.


  • 알고리즘의 범위가 넓은데요. 주위에 개발자들중에선 전문적인 알고리즘을(본인의 업무에 괸련된)알고계신분은 많지 않습니다. 알고리즘으로 어떠한 프로그램을 구현한다는건 코어개발분야일듯합니다. 무엇보다도 현재 내가하고있는 업무에대해서 더 잘알필요가 있겠습니다. 알고리즘이 간단한 프로그래밍에선 필요없지만 자격증을(정보처리기사) 보유하려면 알고리즘과목을 공부해야합니다. 허나 웹개발에선 그닥써먹을일이 거의없다고 보시면됩니다.

    그렇다고 완전 필요없는건 아니고 알고리즘에대해서 기초적인건 알고계시면 프로그램을짤때나 개발회의등 논의할일이 있을땐 좀더 도움이되기는합니다


  • 언어나 툴 자체는 개발을 하기위한 도구일 뿐이라 생각합니다.

    개인적인 생각이지만 결국 알고리즘, 구조 등의 설계에 따라서 결과물이 달라진다 확신합니다.

    자신에게 맞는 것, 하고싶은 분야 고려해서 알고리즘 구조 설계등도 조금씩 시작해 보시는게 좋을 것 같습니다.


  • 안녕하세요~! 아하(Aha) 지식답변자 다라닝입니다.

    질문하신 내용에 대하여 아래와 같이 답변 드립니다.

    사실 전공자들은 알고리즘을 기초부터 다지고 들어가는데

    그렇지 않은 상황이라는 가정하에 천천히 접근하시는것도 방법입니다.

    꾸준히 공부가 필요한 영역이라서

    관심을 갖고 있다가 재미가 쭉 붙은 후에 차근차근 살펴보시는걸 권해드립니다.

    부족하지만 도움이 되셨기를 바라며 추가적인 문의가 필요하시면 답변 부탁드려요!


  • 안녕하세요..

    아주 간단하게 설명해드릴게요

    알고리즘 : 어떤 문제를 해결하기 위한 절차, 방법 등등이죠. 멸령들을 순서화시킨 거에요.

    왜 알아야되냐?

    예를 들어 프로그램을 만들거에요.

    음 쉬운예로 주차장 . 센서를 통해 빈자리 수 체크해주는 프로그램을 만든다고 치면.

    어떻게 해야될까요?

    전체 주차공간에 한개의 센서.(100개가있다치면) 100개의 빈공간이있습니다.

    근데 차가 한대 들어왔어요. 그럼 센서가 한대 들어왔다고 인식하고 프로그램에 명령을 주겠죠

    한대가 들어왔으니 빈공간 한대를 빼라. 100-1 을 실행해라. 그리고 빈자리를 99라고 표시해라

    그러다가 한대가 나갔어요. 그럼 99 에서 다시 +1 을 해라.. 그리고 결과값을 100으로 표시해라..

    이렇듯이 100개가 대기 하고있다가 .. 차가 들어왔다 나갔다 를 확인하고

    빈자리를 빼라. 더해라. 를 명령을 내린다음. 마지막에 빈자리를 표시해라.

    이렇게 순서대로 이루어지죠.. 이게 알고리즘이에요..

    지금 예시는 무척 간단하죠 .

    그림으로 그려도 3칸정도일듯합니다. 대기 - 상태(나갔냐 들어왔냐) - 표시

    근데 프로그램을 만들다보면 구성하면 단순할리가없겠지요...

    중간중간 변수도 생기고 변수가 생겼을때 어떻게 처리해라.. 등..

    모르고 할수도있지만 결국에는 하다보면 하나의 알고리즘이 만들어지는거에요.

    복잡할수록 알고리즘을 생각안하고 만들면 중간중간 변수가 생기는것을 체크할수없을수도있고 만들면서 생각하면 더 힘들지요..

    간단한 프로그램이야~~ 머리속으로 생각하지만요 ^^

    그래서 모든 프로그램의 기본이 알고리즘으로 시작하는거에요.


  • 안녕하세요,

    알고리즘은 컴퓨터한테 일을 시키는 방법에 관한 학문입니다.

    컴퓨터는 멍청해서 스텝 바이 스텝으로 일을 알려줘야 합니다.

    나 배고파 이런식으로 말해서는 죽어도 못알아듣고, 마트에 가서 계란을 3알 사온 후 집에 와서 가스 불을 키고 30초후 후라이펜에 기름을 20cc 두른 후 20% 강도의 불에 계란을 구워서 접시에 담고 나한테 가져다 줘

    이런식으로 매우 잘 풀어서 얘기해야 좀 알아듣기 시작합니다.

    그리고 컴퓨터는 많은 일을 처리할 수 있습니다. 무슨 뜻이냐면, 한 개인을 통솔하는 사람의 능력이 좋던 나쁘던 큰 결과 차이는 없지만, 연대장 처럼 수천명을 다루는 사람의 경우 어떻게 일을 시키느냐에 따라 결과의 차이는 매우 클 것입니다. 컴퓨터는 능력이 어마어마 합니다. 이러한 능력 좋은 컴퓨터한테 일을 잘 나눠주고 실행시키는 과정을 다루는 학문이 알고리즘이므로, 중요도는 매우 높다 할 수 있습니다.

    컴퓨터한테 일을 잘 시키는 사람을 프로그래머라고 불렀기 때문에, 사실 알고리즘과 프로그래밍은 한몸이라 볼 수 있습니다.

    근데 요즘에는 컴퓨팅 성능이 워낙 올라가서... 깡으로 해결하기도 하죠. (예를 들면 딥러닝)

    조금 옛날 얘기일 수는 있지만, 진지하게 이직을 고려하신다면 컴퓨터를 잘 갈구는 전문가가 경쟁력을 가질 것이라 생각합니다.


  • 알고리즘, 순서도, flow chart 라고도 하죠.

    프로그램 로직을 구성하는데

    A~Z 까지의 Data 흐름이 있다고 가정하면

    그것을 초보자가 어떤식으로 흘러가게 처리해야할지

    머리속에 그릴 수는 없을겁니다.

    정해진 순서나 예외처리에 의해서 Data처리가 되는

    로직을 구성할 수 있도록 알고리즘 공부를 하는 것입니다.


  • 개발에 있어서 또는 프로그래밍에 있어서 가장 중요하면서 기본 개념이 잡혀야하는 것이 알고리즘입니다.

    알고리즘이란 어떠한 명령 또는 실행을 수행하는데에 있어 방법과 절차를 말합니다.

    예를들면, 사용자가 스마트폰에서 전화를 걸기 위해 전화번호부를 실행합니다. 그리고 거기에서 내가 원하는 사람의 이름을 검색하고 결과에 나온 리스트를 눌러 전화를 겁니다.

    단계를 크게 나누면

    1. 연락처 실행시 현재 연락처에 있는 전화번호부를 표시

    2. 연락처에 원하는 이름을 입력하야 검색

    3. 검색 결과를 눌러 전화 걸기시 그 번호를 통해 통신 모듈에 명령을 전달해 전화를 거는 과정

    이렇게 나뉘겠죠.

    여기서, 또 1,2,3 단계를 세분화 하면 그 안에서도 더 자세히 단계가 나뉠겁니다.

    이러한 절차나 방법을 가장 효율적으로 하는 방법을 배우는 것이라고 생각하시면 됩니다.

    개발은 컴퓨터 언어 보다 개발에 필요한 사고방식이 더 중요합니다. 알고리즘은 이런 부분에 필요한 것으로 필수중에 필수입니다.


  • 알고리즘 공부 필요합니다...

    무언가를 만들고자 하실때 한가지 경우의 수 만 있는게 아니고 여러가지 방법이 존재할것이고 그중에 제일 간단하고 효율 좋은것으로 구현하는게 알고리즘? 이라고 말할수 있을듯합니다.

    음.. 업청 쉽게 예를 들자면...

    구구단으로 예를 들자면 5 를 10번 더하세요 구현하는데

    A 안으로는 5 x 10 = 50 을 바로 구하는거고

    B 안으로는 5+ 5+ 5+ 5+ 5+ 5+ 5+ 5+ 5+ 5 = 50 이렇게 구하던지.. 결과는 같지만

    A안이 훨신더 간단해지겠죠 코드가... 그래서 공부가 필요하다고 생각합니다.

    머.. 솔직히 어떻게 구현해도 답만 나오면 되고 코드길이도 상관없다고 생각하시는분의 경우는.. 알고리즘 공부가 필요하다고 말씀은 못드리겠습니다.


  • 알고리즘은 꼭 필요하다 생각합니다. 프로그램마다 다른점이 있겠지만 수많은 경우의 수에 안전한 인터락을 걸기위해 알고리즘은 꼭 필요할것 같네요. 아마 제 생각엔 알고리즘을 공부하지 않고 코딩작업에 들어가더라도 하시면서 자연스레 알고리즘 공부를 하시게 될거라 생각합니다. 일단 하고싶은 프로그램을 정하고 유튜브나 인터넷 사이트를 통해 배우다보면 알게되실 것 같습니다.


  • 알고리즘은어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것 이며, 계산을 실행하기 위한 단계적 절차를 나타내는 말 입니다.

    알고리즘은 실생활에서도 많이 사용되고 있습니다.

    예를 들면 물을 마시는 알고리즘은 아래와 같죠.

    1. 주방에 간다.

    2. 컵을 꺼낸다.

    3. 냉장고를 연다.

    4. 냉장고에 물이 있는가?
    yes - 물을 따라서 마신다.
    no - 편의점에 물을 사러 간다.

    컴퓨터로 코드를 작성하면 위에서부터 차례대로 수행되기 때문에 이와 같은 알고리즘을 만들 수 있는 능력이 매우 중요합니다.


  • 안녕하세요

    알고리즘 공부가 왜 필요한지에 대해 문의 하셨는데

    사실 알고리즘도 하나의 공식같은거라 꼭 공부를 해야 한다기 보다는

    처음 프로그래밍을 접하시는 거라면 아무것도 모르시는 상태이실거라는 전제에 공식을 알아야 프로그래밍을 하실텐데,,

    예로 드면 우리가 단순 출력 구구단을 만든다고 하면 알고리즘을 모르는 상태에서는 고민을 하다가 이중 for문을 하면 되겠구나

    까지의 생각 도달이 쉽지 않을 겁니다. 하지만 알고리즘을 알고 계시다면 아! 구구단 알고리즘 하면서 만드시겠죠?

    그리고 응용도 알아야 응용을 하실테고요? 그래서 알고리즘을 공부 하라는 겁니다.

    물론 프로그램을 만들 때 만드는 방법은 여러가지로 만들 수도 있습니다만 많이 해 보시다 보면 개발자들끼리의 뭔가 룰처럼

    하는 것들이 있습니다.

    우리가 수학을 풀때도 공식을 모르면 이렇게 저렇게 해보는 시간도 오래 걸립니다만, 공식을 알면 대입을 하고 바로 풀듯이

    그러한 거라 보면 될거같군요^^