아이디어 도출

2022. 3. 27. 17:18·프로젝트/졸업 프로젝트

한글로 된 언어 ‘ㄱ언어’를 개선하고 발전시키기 위한 아이디어를 도출함.

1. 하나의 기능에 여러 예약어 대응

  • 영어로 된 기존의 프로그래밍 언어는 if, else, while 등 명확한 단 하나의 예약어만을 갖음.
  • 이에 반해 한글은 하나의 단어에도 다양한 조사가 사용될 수 있기 때문에 예약어를 하나로 지정하는 것이 애매함.
  • 따라서 하나의 기능에 해당하는 예약어를 여러 종류를 두어 보다 더 자유롭고 자연스럽게 코드를 작성할 수 있도록 함.
  • 아래의 예시는 같은 기능을 수행하는 서로 다른 코드들의 예시를 나타냄.
만약에 [변수]가 [값] 이면
    ~~~
---
만약 [변수]가 [값] 이라면
    ~~~
---
만약 [변수]이 [값] 라면
    ~~~
변수 <- 3 >= 2

만약 [변수]가 사실이면
    ~~~
---
만약 [변수]가 참이면
    ~~~
---
만약 [변수]가 맞다면
    ~~~

2. 문장을 작성하듯이 코딩

  • 프로그래밍에 익숙하지 않은 사용자들이 처음부터 프로그래밍 언어의 구조에 맞춰 코드를 작성하는 것이 어려울 수 있다고 생각함.
  • 문법 자체를 배우는데 시간을 할애하는 대신 컴퓨팅적이고 논리적인 사고를 기르는데 더 집중할 수 있도록 문법을 아예 배제하고 글을 작성하듯이 코딩을 할 수 있도록 컴파일러를 설계.
사람은 생일을 갖는다. 진수는 사람이고 생일은 4월 30일이다.
오늘은 4월 20일이다. 진수의 생일이 오늘보다 빠르면 진수의 생일을 출력한다.
  • 위 예시는 아래의 수도 코드와 동일한 기능을 수행함.
class 사람 {
    날짜 생일;

    public 사람(_생일) {
        생일 = _생일;
    }

    public void 생일비교(날짜 오늘) {
        if 생일 < 오늘
            print 생일;
    }

진수 = new 사람(날짜);
날짜 오늘 = 2022/04/20
생일비교(오늘);    

3. 문자열 출력 시 조사 (은/는, 이/가 등) 자동 선택

  • 한국어는 명사뒤에 은_는, 이_가 등 다양한 조사가 사용되며 변경될 가능성이 있는 문자열 변수를 출력할 때 조사를 확정해서 출력문을 작성할 수 없음.
  • 따라서 개발되는 언어에 문자열에 따라 적절한 조사를 자동으로 출력해주는 기능을 내장하여 개발 시 편의성을 제공함.
  • 조사를 자동으로 대입해주는 기능은 서식 문자의 형태로 제공할 수 있음.
과일 = "사과"
출력 "[과일]%은 맛있다." // "사과는 맛있다."
출력 "[과일]%는 맛있다." // "사과는 맛있다."

사람1 = "세희"
사람2 = "영표"
출력 "[사람1]%이 [사람2]%을 부른다." // "세희가 영표를 부른다."

4. 출력문 서식 문자 한글로 대체

  • 변수의 출력을 위해 사용하는 서식 문자를 한글로 대체하여 직관적으로 코드를 작성할 수 있도록 함.
  • 예를 들어 c언어의 %d는 %정수로, %f는 %실수 등으로 변환.
문장 = "ㄱ언어"

출력 ("안녕하세요. %문자열입니다.", 문장)

5. 한글 함수형 언어

  • 대부분의 학생들은 명령형 언어를 먼저 배우고 한참 후에 함수형 언어를 접하게 됨.
  • 두 언어를 작성하기 위해 필요한 사고에 차이가 있어 새로운 방법으로 코드를 작성하는 것을 어려워 함.
  • 이에 프로그래밍을 처음 접할 때 부터 함수형 프로그래밍을 접할 수 있도록 간단한 함수형 프로그래밍 기능을 추가함.
함수 

6. 메모리, 포인터 개념 간소화하여 도입

  • C언어의 포인터 개념을 한글 프로그래밍 언어에 (간소화하여) 도입함.
  • 이를 통해 C언어 학습 시 많이 어려워하는 포인터와 메모리 개념, 나아가서 컴퓨터 구조에 대한 개념을 쉽게 학습할 수 있도록 함.
  • 메모리 할당을 수행하면 무조건 연속된 공간을 할당하여 반환하는 것처럼 보이도록 해 명령을 간소화하고 관리가 쉽도록 설계.

저장소 저장1 = 새로운 저장소
저장소 저장2 = 새로운 저장소

참조(저장1) = 10
참조(저장2) = 20

출력 값(저장2 이전) // 10
출력 저장1 다음 == 저장2 // 참

7. 예약어의 의미를 살린 번역

  • 대부분 한글 프로그래밍 언어의 주된 개발 목적은 영어에 익숙하지 않은 저학년 등의 컴퓨팅적 사고 능력 향상임.
  • 기존의 class, function, variable, constructor 과 같은 어휘를 단순 번역할 경우 결국 기존 프로그래밍 언어를 사용할 때와 같이 영어로 먼저 사고하고 코드만 한국어로 작성하는 낭비가 발생할 가능성이 존재.
  • 따라서 해당 예약어를 실제 수행하는 기능에 맞게 번역하여 영어나 프로그래밍 언어를 모르는 사람도 자연스럽게 프로그래밍을 접하고 익힐 수 있도록 함.
  • 어떤 단어를 사용해야 직관적이면서도 의미를 해치지 않을지에 대해서는 더 고민 필요.
[틀] 사람
    [값] 나이 <- 25
    [값] 이름 <- "현상혁"      

    [기능] 나이변경 ([변수] 새로운나이)
        나이 <- 새로운나이
        나이 반환

8. 모든 연산자를 한글로 대체할 수 있도록 설계

  • 예를 들어 기존 ‘ㄱ언어’는 대입 연산자 =의 직관성이 떨어진다는 이유로 해당 연산자를 <-로 변경함.
  • 하지만 이러한 연산자 또한 크게 직관적이라고 와닿지 않으며 오히려 다른 프로그래밍 언어와 혼동될 여지가 있다고 판단함.
  • 한글로 코드를 작성한다는 특징을 살려 연산자들을 한글 로도 작성할 수 있도록 언어를 설계하면 좋겠다고 생각함.
// 대입 연산자 예시
[나이]는 25 // int 나이 = 25
[이름]은 "현상혁" // String [이름] = "현상혁"

// 비교 연산자 예시
[가]는 3
[나]는 4

만약 [나]가 [가]보다 크거나 같다면 // [나] >= [가]
    출력 [나]

'프로젝트 > 졸업 프로젝트' 카테고리의 다른 글

이해당사자 특정 및 문제 상황 정의하기  (0) 2022.03.27
인프런 '블록체인과 솔리디티' - 솔리디티  (0) 2022.03.27
인프런 '블록체인과 솔리디티' - 블록체인  (0) 2022.03.27
도출된 아이디어 덧붙이기  (0) 2022.03.27
문제 정의  (0) 2022.03.27
'프로젝트/졸업 프로젝트' 카테고리의 다른 글
  • 인프런 '블록체인과 솔리디티' - 솔리디티
  • 인프런 '블록체인과 솔리디티' - 블록체인
  • 도출된 아이디어 덧붙이기
  • 문제 정의
gmelon
gmelon
백엔드 개발을 공부하고 있습니다.
  • gmelon
    gmelon's greenhouse
    gmelon
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • 개발 공부 (28)
        • Java (6)
        • Spring (10)
        • 알고리즘 (11)
        • 기타 (1)
      • 프로젝트 (12)
        • [앱] 플랭고 (4)
        • 졸업 프로젝트 (8)
      • 스터디 (0)
        • 자바 (30)
      • 기록 (15)
        • 후기, 회고 (9)
        • SSAFYcial (5)
        • 이것저것 (1)
      • etc. (6)
        • 모각코 (6)
  • 블로그 메뉴

    • 홈
    • 방명록
    • github
    • 스크랩
  • 인기 글

  • 태그

    한글프로그래밍언어
    groupingBy mapping
    프리티어 종료
    groupingBy()
    졸업프로젝트
    Java Collector
    AWS 프리티어 종료
    태초마을이야
    2024 회고
    자바
    Collector groupingBy()
    java
    2024 상반기 회고
    자바 Collector
    싸피 회고
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
gmelon
아이디어 도출
상단으로

티스토리툴바