20211001 10월의 첫 날

DUUUPPAAN·2021년 10월 1일
0

교육 20210915~ Java

목록 보기
12/13

·남은 (6-1)개월의 대장정

-정말 많이 달렸다고 생각했는데, 아직 한달 조금 넘게 한 수준이다. 그것도 사전교육까지 합하면 한달을 넘게 한 것이고, 정말 딱 한달 수업을 들었다. 아침일찍 일어나서 수업을 듣고, 전혀 생소한 프로그램들을 다루고, 저녁 늦게까지 복습에, 정리에, 운동에, 영어 공부에... 바쁘게 왔지만, 아직 더 많이 남았다. 그렇게 두 번째 달이 시작되었다. 나는 5개월 후에 정말 개발자라고 할 수 있는 사람의 모습일까?

·MySQL과 Oracle을 배우기 전

-오늘은 다음주부터 진행할 데이터베이스에 대한 이론을 간단하게 짚고 넘어가는 수업을 진행했다. 이론적인 부분이 많아서, 정말 많이 졸리고 힘들었다. 심지어 실습 없는 이론 수업을 계속 진행해서 정말 가르쳐주시는 교수님도 고역이셨다. 받아들이는 우리도, 실제로 적용되는 모습을 보지 못하고 이론적인 부분만 먼저 들으니 여간 낯설고 힘든게 아니었다. 그래도 긍정적인건 이론적인 부분은 자격증을 위한 공부를 할 때 보면 충분하고 아직은 암기보다는 다음주에 할 실습에 더 집중하라고 하셨다... 휴... 400페이지가 넘는 ppt를 다 외워야 하는 줄 알고 정말 소름이 돋을 뻔 했다. 물론, 나중에 시험을 봐야하는 과목이기에 어차피 배워야겠지만, 지금은 너무 많고 다양한 것들을 배우고 있어서 저런 암기까지 엄청나게 주어진다면 쉽지 않을 것 같다. 그래서 조금 안심했다. 다음주에는 직접 DB를 만들어서 데이터를 넣어보고 또 데이터를 처리해보고 자바에서 불러와보고 여러가지를 해서 정말 질리도록 연습할 것이라고 하셨다. 개인적으로 데이터베이스쪽에 굉장히 흥미가 많아서 뭔가 재미있을 것 같았다. 사실, 위에 낯설고 힘들었다고 언급하긴 했지만, 이론 수업임에도 흥미로운 부분은 분명히 있었다. 직접 실습을 하면 정말 좋을 것 같다.

·이론수업에 지친 학생들이여

-사실 막 듣기 고역까지는 아니였지만, 일방적인 수업을 진행해서 조금 루즈해지긴 했었다. 그래서 교수님이 중간 중간 프로그램을 하나 짜 봐라 하고 던져주신 문제들을 코드로 작성했다. 물론, 나중에 답을 보여주시긴 하셨는데, 개인적으로 결과가 똑같았기에 굳이 보여주신 답을 베껴적진 않았다. 물론 새로운 메소드나 기능을 쓰셨다면 유심히 봤겠지만, 지금껏 했던 것들을 나와 다른 방식으로 쓰신 거라서 그냥 참고만 했다.
오늘따라 답을 내게 직접 여러번 물어보셨는데, 다행히도 푼 문제의 답이 전부 맞았다.

그 문제들 중에 몇 가지만 올리자면

  1. 3의 배수와 7의 배수를 제외한, 0~100까지의 합
package Class;

public class problem1 {

	public static void main(String[] args) {
	int result=0;
	for(int i=0;i<101;i++) {
		if(i%3 == 0 || i%7 == 0) continue;
		result = result+i;
				}
	System.out.println("1~100까지의 숫자 중, 3과 7의 배수를 제외한 합계는?"+result);
	}
}

교수님은 ||이걸 안쓰시고 따로 따로 조건문을 만드셨는데, 너무 코드가 길어지고 중복된 느낌이었다. 더 간결하게 쓰는 게 맞는 것 같아 수정하지 않았다.

  1. 스위치문을 이용한 메뉴선택과 출력
package Class;

import java.util.Scanner;

public class Problem2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("메뉴: 1.감자탕 2.아귀찜 3.짜장면 4.된장찌개 5.추어탕 6.갈비탕 \n주문할 음식의 주문번호를 입력하세요: ");
		int inputNum = sc.nextInt();
		String inputMenu = null;
		switch(inputNum){
			case 1: inputMenu="감자탕"; break;
			case 2: inputMenu="아귀찜"; break;
			case 3: inputMenu="짜장면"; break;
			case 4: inputMenu="된장찌개"; break;
			case 5: inputMenu="추어탕"; break;
			case 6: inputMenu="갈비탕"; break;
			default: System.out.println("주문을 잘못하셨습니다.");	
		}
		if(inputMenu != null) {
		System.out.println(inputMenu+"를 주문하셨습니다.");
		}
		
	}

}

스위치문은 예전에 javascript를 할 때 사용해봤었는데, java에서는 처음이었다. 기본적인 구조는 똑같아서 크게 어렵지 않았다. 오히려 콘솔창이 있어서 더 뭔가 있는 듯한 느낌이었다.

  1. 원래는 입력받은 메뉴가 메모장 파일에 입력이 되고 그 입력값을 출력하는 코드를 만드는 것이었다. 그런데 말씀을 조금 애매하게 하셔서 내가 잘못 알아듣고 이 스위치문을 그대로 이용해서 코드를 만들었다. 사실 처음엔 좀 잘못했구나 했는데, 교수님이 사용하신 코드는 어제 진행한 코드를 그냥 똑같이 사용하면 되는 것이었어서 다르게 해본 것이 더 좋은 결과를 가져온 것 같다.
package Class;


import java.util.Scanner;
import java.io.*;

public class Problem3 {
		public static void main(String[] args) throws IOException {
			Scanner sc = new Scanner(System.in);
			System.out.print("메뉴: 1.감자탕 2.아귀찜 3.짜장면 4.된장찌개 5.추어탕 6.갈비탕 \n주문할 음식의 주문번호를 입력하세요: ");
			int inputNum = sc.nextInt();
			String inputMenu = null;
			switch(inputNum){
				case 1: inputMenu="감자탕"; break;
				case 2: inputMenu="아귀찜"; break;
				case 3: inputMenu="짜장면"; break;
				case 4: inputMenu="된장찌개"; break;
				case 5: inputMenu="추어탕"; break;
				case 6: inputMenu="갈비탕"; break;
				default: System.out.println("주문을 잘못하셨습니다.");	
			}
			File file = new File("menu.txt");
			FileWriter fw = new FileWriter(file);
			fw.write(inputMenu);
			fw.close();
			sc.close();
			
			FileReader fr = new FileReader(file);
			while(true) {
			int c = fr.read();
			if(c ==-1) break;
			System.out.print((char)c);
			}
			fr.close();
		}
}

사실, class를 나눠서 메소드를 가져오는 식으로 메인을 가볍게 만들까도 고민했었다. 그러나, 애초에 그렇게 길고 복잡한 로직이 아니어서 그냥 한 클래스안에서 정의하는 것이 나중에라도 보고 이해하기에 좋을 것 같아서 이렇게 작성했다.

·주말의 공부

-이번 주말에는 교수님이 체크해주신 교재의 예제를 꼼꼼히 읽어볼 것이다. 가능하다면 교재를 이제 안보신다고 하셧기 때문에, 독학으로라도 좀 더 부딪혀보려고 한다.
이번에 월요일이 대체 휴무일이어서 토일월을 쉰다. 쉬는 것도 너무 좋지만, 하루라도 더 쉬면 복귀가 힘들어서 루즈해지는 감이 있다. 그러지 않도록 쉬는 날에도 공부는 꾸준하게 해야겠다.

profile
비전공자란 이름으로 새로운 길을 가려 하는 신입

0개의 댓글