회고
어느덧 강의를 듣기 시작한 지 7일차가 시작되었는 데 시작한 것이 바로 어제 같은 느낌이 든다. 지난 한 주를 되돌아보면 업무와 병행하는 데에 있어서 무리가 있다는 점을 깨닳았을 때가 많았던 것 같다.
평일에 강의를 듣고 같이 실습을 하며 내용을 이해하는 데에 집중하고 주말을 이용하여 복습하는 개념으로 포스팅으로 정리해 나가는 하는 계획을 세웠었지만, 계획은 수포로 돌아갔다. 그래서 결정한 방법이 평일에도 지난 주의 강의 내용이 정리가 되지 않았다면 그것을 우선하고 해당 주차의 강의를 듣는 방식으로 변경하고자 한다.
본 강의와 보충 강의도 있지만, 추가적으로 이해가 되지 않는 부분에 대해선 "초보 개발자를 위한 JAVA"라는 서적를 함께 보면서 개인적인 방식으로 풀어나가는 방식으로 진행하면서 그 내용을 블로그를 통해 공유할 계획이다. 이러한 과정을 거친 뒤 2024년 말, 한 단계 더 성장해 있는 백엔드 개발자가 되는 모습을 상상하며 임고자 한다.
이러한 과정이 6개월 뒤에 지금보다 한 단계 더 성장한 백엔드 개발자로서 모습을 상상하며 앞으로 정진해나가고자 한다.
주요 학습 내용
JAVA의 기본 개념 [링크]
- 자바는 개체 지향적 언어의 대표적인 언어 중 하나이다.
- 운영체제에 종속적이지 않고 플랫폼으로부터 독립적이라는 특징이 있다.
JAVA의 변수와 자료형 [링크1, 링크2, 링크3]
- 변수 : 데이터를 저장하는 메모리 공간에 붙여준 이름을 뜻한다.
- 변수 이름은 "문자와 숫자, '_', '$'를 사용할 수 있다.
- 변수는 띄어쓰기와 숫자로 시작해서는 안되며, 주로 카멜 표기법을 사용하여 변수명을 작성한다.
- 변수의 자료형으로는 숫자(정수, 실수), 문자, 문자열, 논리 등이 있다.
JAVA의 연산자 [링크1, 링크2]
- 연산자에는 단항 연산자, 이항 연산자, 삼항 연산자, 대입 연산자, 산술 연산자 등과 비트 연산자가 있다.
JAVA 조건문 [링크]
- 주어진 조건에 따라 실행하는 조건문을 통해 실행문을 분기 처리 하는 구조이다.
- 주요 조건문의 종류 : if문, if ~ else문, if ~ else if ~ if문, switch 문
JAVA 반복문 [링크]
- 주어진 횟수 만큼 반복하는 for문과 주어진 조건문을 만족하지 못할 때 까지 반복하는 while, do ~ while문이 있다.
JAVA 다차원 배열 [링크]
과제 수행
- 과제는 다음주부터 본격적으로 수행될 미니 과제에 앞서 과제 수행 방법에 대해 익히는 깜짝 과제가 주어졌다.
- 깜짝과제의 문제는 "수강관리 프로그램 작성을 위한 메뉴 기능 구현"과 "제19대 대통령 취임사 속 알파벳 별 출현 빈도 수와 비율을 출력"하는 문제로 구성되어 있었다.
수강관리 프로그램 작성을 위한 메뉴 기능 구현
- 반복적으로 나오는 메뉴 선택 목록을 while문을 사용하여 처음에 구현하였다.
- 하지만, 처음에 나온 메뉴가 메뉴를 선택 이후 반복적으로 나와야하며 특정 메뉴를 선택했을 땐 종료를 해야한다는 조건에는 부합되지 않는 문제점을 발견하였다.
- while문과 비슷한 성격을 지닌 do ~ while문을 사용하여 해당 문제를 해결해나갔다.
- do ~ while문을 선택한 이유는 실행문을 1회 실행한 후 조건문에 맞는 지 확인하기 때문에 본 과제를 해결하는 데에 적합하다고 생각하여 선택하였다.
제19대 대통령 취임사 속 알파벳 별 출현 빈도 수와 비율을 출력하는 프로그램
- 파일에 저장된 문자열을 가져와 알파벳 별로 출현 빈도 수를 어떻게 저장하고 산출할 것인지가 이 문제의 핵심 포인트로 삼고 진행하였다.
- 대소문자가 섞여있는 영문 취임사를 우선적으로 하나의 방향으로 통일하는 것이 필요했다.
- String 클래스의 함수를 사용하여 하나의 방향으로 처리할 수 있도록 해주면서 이 문제는 해결되었다.
- 각 알파벳을 각각의 변수에 담는 것과 배열에 담는 방식 중 효율적인 방향을 찾아보았고, 그 결과 배열에 담는 것이 좋다고 판단하였다. 허나, 알파벳의 아스키코드 값은 65('A') ~ 122('z')여서 배열의 크기가 무작정 커지는 결과를 갖게 되었다.
- 배열의 크기가 커진다는 것은 그 만큼 Heap 메모리 영역을 할당하므로, 비 효율성인 것 같아 배열의 크기를 줄이고 이를 위해 아스키코드 값을 사용하여 차를 구하여 할당하는 방식으로 방향성을 잡고 해결해나갔다.
- 비율은 소수점 둘 째짜리까지만 표현하라는 조건이 붙어 이를 해결할 방안으로 C언어에서의 출력문 표기 방식을 사용하면서 과거의 배움과 경험이 헛되이지 않았구나라는 점도 느꼈다.
사람은 누구나 자신이 할 수 있다고 생각하는 그 이상의 일을 할 수 있다.
- 헨리 포드