세션 일정 : 26년 3월 18일 (목)
Video Conferencing, Web Conferencing, Webinars, Screen Sharing
<aside> 💡
글을 쓸 때 먼저 목차를 잡듯, 코드를 짤 때도 먼저 생각을 구조화하거나 흐름을 시각화하면 훨씬 빠르게 구현할 수 있습니다!
혹시 문제를 코드로 바로 구현하려고 했을 때, 중간에 막혀본 경험이 있지 않으신가요?
오늘의 목표는 “코드 짜기 전 생각을 정리하는 법”을 익히는 것입니다!
</aside>
<aside>
과연 모두 같은 순서로 설명할까요?
<aside>

생각을 구조화한다.
문제를 단계별로 쪼개어 어떤 절차가 필요한지 명확하게 드러난다.
놓친 조건을 빠르게 발견할 수 있다.
자연어로는 보이지 않던 예외 상황이 Flowchart에서는 명확하게 보인다.
코드 작성 전 논리 오류를 미리 잡을 수 있다.
설계 단계에서 흐름이 완성되면, 코드는 그 흐름을 옮겨 쓰는 과정이 된다.
팀원과의 커뮤니케이션이 쉬워진다.
그림으로 표현된 흐름은 누구나 같은 방식으로 이해할 수 있다.
</aside>
<aside>
import java.util.Scanner;
public class PassCheck {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하세요: ");
int num = sc.nextInt();
if (num >= 10) {
System.out.println("통과");
} else {
System.out.println("재입력");
}
sc.close();
}
}
사용자가 숫자를 하나 입력한다.
"통과"를 출력한다."재입력"을 출력한다.겉으로 보기엔 전혀 문제 없어 보입니다. 그런데
abc 같은 문자를 입력하면 어떻게 될까요?
nextInt() 에서 예외 발생 → 프로그램 바로 종료9.5처럼 소수를 입력하면요?
int로 받을 때 예외 발생9.5는 통과인가요? 재입력인가요? 반올림인가요?물론 아래처럼 변론을 할 수도 있겠죠?
요구사항이 애매하기 때문에 내 마음대로 해석하고 코드로 구현할 수 밖에 없었다. 그래서 예외 상황, 입력 타입, 반복 여부가 빠져 있다.
하지만 이런 변론은 결국 “나는 수동적인 개발자입니다. 자기주도적 개발은 불가능해요.” 라고 말하는 것과 다를게 없습니다.
“재입력” 출력 후 다시 입력받는다."통과" 출력 후 프로그램 종료한다."정수를 입력해주세요"를 출력하고 다시 입력받는다..jpg)
이렇게 Flowchart를 그림으로써 여러분은 코드를 작성하기도 전에 조건문과 반복문을 설계할 수 있습니다.
</aside>
</aside>
<aside>
기본 심볼
| 타원형(Terminal) | 시작과 종료 |
|---|---|
| 직사각형(Process) | 처리 과정 |
| 마름모(Decision) | 조건 분기점 |
| 평행사변형(Input/Output) | 입출력 |
| 화살표(Arrow) | 흐름의 방향 |
Flowchart 작성 원칙
<aside>
<aside>
사용자가 0을 입력할 때까지 숫자를 계속 더하고, 최종 합을 출력하라.
</aside>
<aside>
뭘 받고, 뭘 내보내고, 뭘 계속 들고 있을까?
<aside>
</aside>
<aside>
</aside>
<aside>
</aside>
Live 실습
</aside>
<aside>
</aside>
<aside>
</aside>