문제해결과정 5단계 예시 - munjehaegyeolgwajeong 5dangye yesi

문제의 상황들을 본인의 언어로 풀어쓰는 과정입니다. 누구는 수치를 사용하여 표를 그리기도 하고, 그래프를 그리며, 상황을 그림으로 그리는 작업입니다. 이런 과정을 추상화라고도 합니다.

문제가 요구하는 상황을 재정의하면 문제의 해결방법이 보이는 경우도 있고, 가장 중요한 것은 구현이 쉬워집니다.

3단계 : 계획 세우기

적합한 자료구조와 알고리즘을 선택하여 계획을 세웁니다. (사실상 파인만 알고리즘과 다를바 없다고 생각합니다.)

이는 아래에서 보다 살펴보겠습니다.

4단계 : 계획 검증하기

코드를 작성하기전에 적합한 계획인지 살펴보는 것은 중요합니다. 사실 구현이 불가능한 내용이라던지, 예외는 없는지, 시간은 대충 얼마나 걸릴지, 메모리는 충분한지 등을 증명해야합니다.

<프로그래밍 대회에서 배우는 알고리즘 문제해결 전략, 일명 종만북>

실력을 기르기 위해선 문제 해결 과정을 여러 부분으로 나눠보고,
 각 과정에서 잘하고 있는지 못하고 있는지 피드백을 해야 한다.

< 문제 해결 과정 >

1. 문제를 읽고 이해한다.

2. 문제를 익숙한 용어로 재정의한다.

3. 어떻게 해결할지 계획을 세운다.

4. 계획을 검증한다.

5. 프로그램으로 구현한다.

6. 어떻게 풀었는지 되돌아보고, 개선할 방법이 있는지 찾아본다.


1단계) 문제를 읽고 이해하기.

  • 문제 설명을 공격적으로 읽고, 문제가 원하는 바를 완전히 이해하라. 또한 사소한 제약 조건을 주의하라.

2단계) 재정의와 추상화.

  • 문제를 자신의 언어로 풀어 써라. 문제를 추상화하여, 자신이 다루기 쉬운 수학적/공학적 개념으로 옮겨 표현하라.

3단계) 계획 세우기.

  • 문제를 어떤 방식으로 해결할지 결정하고, 사용할 알고리즘과 자료구조를 선택하라.

4단계) 계획 검증하기.

  • 설계한 알고리즘이 모든 경우에 문제의 요구 조건을 정확히 수행하는지 증명하고, 걸리는 시간과 메모리를 문제의 제한 내에 들어가는지 확인하라.

5단계) 계획 수행하기(구현).

6단계) 회고하기.

  • 자신이 문제를 해결한 과정을 돌아보고, 개선하라. 끊임없이 자신이 기술들을 어떻게 사용하고 있는지 돌아보고 개선하라.
  • 회고를 수행하는 세 가지 방법 
    1. 가장 좋은 방법은 문제를 풀 때마다 코드와 함께 자신의 접근 방법을 기록으로 남기는 것.
    2. 틀렸던 문제는 오답 원인을 적어라.
    3. 같은 문제를 해결한 다른 사람의 코드를 보고, 자신의 코드를 개선하라. 반드시 자신의 코드를 되돌아보라.
문제라는 것은 절대적으로 존재하는 것이 아니라 상대적으로 달리 인식되는 것으로 문제를 정의하는 시각에는 2가지 방법이 있다. 문제는 좁은 의미에서의 문제와 넓은 의미에서의 문제로 구분한다. 


▣ 좁은 의미의 문제


바람직하지 못한 상태(Undesirable Situation)또는 현재 상태를 악화시킬 수 있는 위협들이다. 문제는 좋지 않은 것으로 원하지 않는 사건이나 곤경등을 문제라고 할 수 있다. 문제 해결은 이전 상태로 회복하고 재발을 방지하는 것이다. 


▣ 넓은 의미의 문제


현재 상태와 미래상태의 차이이다. To-be 상태와 As-is 상태의 차이(Gap)이다. 문제는 부정적 시각이 아니고  미래의 달성하고자 하는 목표와 거리이다. 따라서 문제 해결(Problem Solving)은 목표를 달성(Achieving Goals)하는 것이다.


대부분의 사람들은 문제가 발생되면 즉흥적으로 해결하려 한다. 본능과 직관에 따른 문제 해결은 비합리적 감정으로 대응하기도 하고 가치관에 따라 크게 달라진다. 만약, 당신이 월말이 되었는데 직원 급여를 줄 돈이 없다고 가정해 보자. 왜 이런 문제가 발생되었는지는 중요하지 않다. 오직 어떻게 돈을 만들어 현안 문제를 해결할까만 생각하게 된다. 


그러나 복잡한 비즈니스 문제를 해결하기 위해서는 절차적이고(Process oriented)합리적인 문제해결 방식이 필요하다. 합리적 문제해결 방식의 가장 중요한 방법은 그 절차를 잘 정의하여(Well Defined) 독립적인 세부 단계로 분할하는 것이다. 문제 해결 절차는 5단계 프로세스로 이루어진다. 

문제 해결력은 과소 평가되고 있는 재능입니다. 이 능력은 혼란스럽고 힘든 시기에 명확한 결정을 내리는 데 도움이 되며, 많은 전문가들이 문제 해결력을 팬데믹 이후 구직자들에게 필수적인 소프트 스킬(Soft Skill)로 꼽습니다.

문제 해결력을 키우려면 '무엇을, 어떻게, 왜'에 초점을 맞춘 구조화된 접근 방식을 사용하는 것이 좋습니다. 단계별 가이드가 되어줄 5가지 질문으로 나누어 자세한 내용을 살펴보도록 하겠습니다.

질문 1: 왜 이 문제에 관심을 가져야 하는가?

듣는 이들에게도 영향을 치는 당면 과제를 분명하게 명시하는 몇 개의 짧은 문장으로 문제를 서술하세요. 구체적이고 정량적인 세부정보를 활용합니다. “우리는 품질 문제로 인해 매년 손실이 발생했습니다.”라는 문장 대신 “2019년에 품질 결함으로 인해 백만 달러의 손실이 발생했습니다. 이는 전체 매출의 5%에 해당합니다.” 와 같이 표현하는 것이 좋습니다.

문제를 너무 광범위하게 정의하면 해결할 리소스가 부족할 수 있고, 너무 세부적으로 정의하면 좀 더 넓은 범위에서 개선 효과를 볼 수 있는 기회를 놓칠 수 있으므로 적절한 범위 내에서 정의해야 합니다. 또한, “품질 보증 컨설턴트를 고용해야 합니다.”와 같은 솔루션을 성급하게 추가하지 마세요. 솔루션은 나중에 찾을 수 있습니다.

질문 2: 성공을 어떻게 정의할 것인가?

무엇을 달성하려 하는지, 목표 달성 여부는 어떤 주요 성과로 판단할 수 있는지를 정의하여 목표를 설정합니다. 솔루션이 아닌 달성할 목표에 초점을 맞추어야 합니다. '방문자에게 직관적이고 즐거운 경험을 제공할 수 있는 웹사이트 만들기'는 목표이지만 ’5명의 UX 디자이너 채용’은 솔루션입니다. 그런 다음 측정 가능한 주요 성과를 정의하여 목표 달성 여부를 판단할 수 있도록 합니다. ‘클릭률 증가’는 모호하지만 ‘클릭률 30% 증가’는 측정이 가능한 목표입니다.

질문3: 이 문제를 어떻게 풀 것인가?

이제 잠재적인 솔루션에 대해 브레인스토밍할 때입니다. 문제에 대해 가능한 한 많은 정보를 알아내는 데서 시작하세요. 동일한 문제에 대한 연구가 있는지 확인하고, 이전에 유사한 문제를 다룬 사례를 업계 밖의 '평행선상의 다른 세계(parallel worlds)'에서 찾아보세요.

그룹 브레인스토밍을 진행 중인 경우 중재자로 한 사람을 선택하고 다른 사람들을 시간 관리자 및 회의록 작성자로 지정합니다. 그런 다음 문제를 해결하고 목표 및 주요 성과에 도달하는 데 도움이 될만한 솔루션을 최대한 많이 브레인스토밍하세요. 모두가 자신의 생각을 확장하도록 하고, 크고 작은 아이디어 모두를 가감 없이 공유하도록 하세요.

잠재적인 솔루션 목록이 준비되었다면 솔루션 트리에 넣어 목표를 구조화하고 이를 달성하는 방법(전략)을 모색합니다. 목표를 적는 것부터 시작하세요. 간단한 예로 목표가 ‘제품 매출 증대’라고 가정해 보겠습니다. 목표에서 다수의 가지가 뻗어 나와 ‘동일 제품 판매 증대’ 및 ‘신제품 판매 시작’과 같이 브레인스토밍한 솔루션을 하나씩 나열하도록 합니다.

문제처리능력은 문제를 해결해 나가는 실천과정에서 실제적으로 요구되는 능력이다. 문제처리 능력은 업무수행 중에 발생한 문제의 원인 및 특성을 파악하고, 적절한 해결안을 선택, 적용하고 그 결과를 평가하여 피드백 하는 능력을 말한다. 문제를 어떻게 합리적이고 효율적으로 해결할 것인가 하는 능력은 기업의 성패를 결정하는 중요한 요소로서, 문제처리능력을 배양함으로써 합리적인 문제해결이 가능하게 될 것이다.

□ 문제처리능력이란?


문제처리능력이란 목표와 현상을 분석하고 이 분석결과를 토대로 문제를 도출하여 최적의 해결책을 찾아 실행, 평가 처리해 나가는 일련의 활동을 수행하는 능력이라 할 수 있다. 이러한 문제처리능력은 문제해결절차를 의미하는 것으로, 일반적인 문제해결절차는  문제 인식, 문제 도출, 원인 분석, 해결안 개발, 실행 및 평가의
5단계를 따른다.

■ 문제 인식
해결해야 할 전체 문제를 파악하여 우선순위를 정하고, 선정문제에 대한 목표를 명확히 하는 단계


■ 문제 도출
선정된 문제를 분석하여 해결해야 할 것이 무엇인지를 명확히 하는 단계


■ 원인 분석
파악된 핵심문제에 대한 분석을 통해 근본 원인을 도출하는 단계


■ 해결안 개발
문제로부터 도출된 근본원인을 효과적으로 해결할 수 있는 최적의 해결방안을 수립하는 단계


■ 실행 및 평가
해결안 개발을 통해 만들어진 실행계획을 실제 상황에 적용하는 활동으로 당초 장애가 되는 문제의 원인들을 해결안을 사용하여 제거하는 단계