오늘 공부한 내용

  • 책공부 'Java의 정석' / 객체지향 프로그래밍 위주로 공부(클래스, 객체, 인스턴스 )
  • 개인과제 실시 ( 상품 클래서 작성)
 
 

 

 

오늘의 느낀점

오늘 주문한 책인 'Java의 정석' 이라는 책이 왔다.

부트캠프에서 추천되어 있는 책이고 리뷰도 보니 기초에대해 이해를 잘도와줄수 있다는 내용이 많아서 구매하였는데

책 내용을 보니 글도 상세히 적혀있지만 그림으로 좀더 구체적인 이미지를 그려주고 있어서 이해가 더 잘됬다.

영상만으로는 클래스 개념중 이해가 안되는 부분이 있었는데 책의 예시에서 조그만하게 적혀있는 상세주석이 내가 알고싶은 부분을 알려주어서 읽기 편했다.

이후 개인과제로 일단 각 제품들을 클래스로 품목들을 기입해놓았다.

이제 이것들을 연결해서 활용해야하는데... 책에 예제를 더풀면서 익혀봐야 겠다

오늘 공부한 내용

  • Java 문법 종합반 1,2주차 복슴
  • 개인과제 실시 ( 메뉴 작성 )
 
 

 

어려웠던 내용

1. 메뉴, 상품 클래스 작성의 시작을어떻게 해야 할지 모르겠다

 

 

오늘의 느낀점

오늘 1,2주차 내용 복습한후 개인과제 작성에 들어갔다.

과제 설명에 보면서 어떻게 구조를 짜야할지 생각하는데 이게 작성하면서 맞는지 모르겠다

튜터님에게 가서 물어보려해도 시작부분을 어떻게 잡아야할지 내가 질문해야할 부분조차 감이 안온다

결국 저녁먹고 3시간동안 코드작성 한줄도 못했다..

다음주 월요일 제출인데 어디까지 할수 잇으려나... 후

금일 배운 것

1. Java 문법 종합반 4,5주차 영상강의 시청 / 21개 강의시청, 4주차 숙제

4-1 오류 및 예외에 대한 이해
4-2 예외발생과 try catch, finally문
4-3 예외 클래스 구조 이해하기
4-4 chained exception 및 실제 예외 처리하기
4-5 제네릭 개념 및 기본 문법 소개
4-6 제네릭 문법 자세히 살펴보기
4-7 Collection 다시보기(List)
4-8 Wrapper 클래스
5-1 프로세스와 쓰레드
5-2 싱글 쓰레드와 멀티 쓰레드
5-3 구현방법 3 가지
5-4 싱글 쓰레드와 멀티 쓰레드 실습
5-5 데몬, 우선순위, 쓰레드 그룹
5-6 쓰레드 상태, sleep, interrupt
5-7 join, yield, synchronized
5-8 wait, notify
5-9 Lock, Condition
5-10 모던자바_ 자바 8 변경점
5-11 모던자바_ 함수형 프로그래밍 실전 예제
5-12 모던자바_ stream 
5-13 모던자바_ null
 
 

개인 과제

개별 과제 : 지금 까지 배운 java문법을 이용하여 음식을 주문하는 키오스크 만들기

제출기한 : 23.10.23, 14:00까지

 

문제점

1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해

- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

 

2. 구조 생성을 익히는데 어려움

3. 숙제풀이시 예제에 맞춰서 무엇을 구성하고 어떻게 구조가 들어가야 되는지 감이 안옴

4. 영상강의에 비해 과제난이도가 높음

 

느낀점

오늘은 진도를 맞추기위해 영상시청에 주력으로 했다

다만 영상내용중 너무 띄엄띄엄 가르쳐 주는것이 많아서 나중에 이를 이해하고 시행하기에는 적어도 4번이상 다시 돌려보기를 하면서 해야 할거 같다

그리고 오늘 부트캠프에서 개별 과제를 내렸는데 과제는 음식을 주문하는 형태로 계산할수 있는 키오스크 처럼 코드를 짜오는거다

영상 시청후 과제를 하려고 하니 영상에서 알려준 수식 보다 더 많은 수식을 요구하는거 같다

아직 과제를 제대로 이해도 못한게 문제 인거 같다.

과제를 해내려면 개별적으로 또 따로 공부하여서 수식을 찾아내야 할거 같다

 

아직 배움을 시작한지 2주밖에 안된 이 스파르타 부트캠프는 자기주도적 학습으로 개인의 실력 향상을 추구한다고 하지만 개발자 공부를 처음 시작한 나한테는 따라가기 버거운 감이 많다.

영상을 보면서 순서대로 익히고 공부하면 된다지만 주먹구구식으로 가르치는게 없지 않아 느껴진다.

최선을 다해 공부를 할지라도 내가 잘 해낼수 있을지 의문점이 들기 시작했다....

그래도 해보지 않고 판단하기보다는 해보고 판단하자

화이팅!!

금일 배운 것

1. Java 문법 종합반 3주차 영상강의 시청 / 9개 강의시청, 3주차 숙제

3-10 import와 package
3-11 상속 개념 소개 및 예시
3-12 상속관계와 포함관계
3-13 단일다중상속 final 최상위 클래스
3-14 overriding과 super
3-15 다형성과 instanceof
3-16 추상 클래스
3-17 소개, 구현, 상속
3-18 default, static, 다형성
 

문제점

1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해

- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

 

2. 구조 생성을 익히는데 어려움

3. 숙제풀이시 예제에 맞춰서 무엇을 구성하고 어떻게 구조가 들어가야 되는지 감이 안옴

 

느낀점

이번 예시도 30분동안 머리싸우면서 구조 생각하다 결국 예시해결문을 보았다. ㅎㅎ

내용을 보면서 완성이 되기까지 객체를 만들고 그 객체에 틀을 입히고 구조를 만드는 것을 보면서

개발자가 되려면 값을 도출하기 위하여  이루어지는 과정에 대해 세부적으로 잘 이해해야 할거 같다

 

금일 배운 것

1. Java 문법 종합반 3주차 영상강의 시청 / 9개 강의시청

3-1 객체지향 프로그래밍 이해하기
3-2 클래스 설계
3-3 객체 생성
3-4 필드와 메서드
3-5 매개변수의 종류 (기본형, 참조형)
3-6 인스턴스 멤버와 클래스 멤버
3-7 지역변수 및 상수
3-8 생성자 this
3-9 접근제어자
 

문제점

1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해

- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

 

2. 구조 생성을 익히는데 어려움

- 지속적인 반복 필요

 

느낀점

오늘은 3주차 내용인 클래스 와 객체 및 필드 매서드에 대해 시청하면서 공부 했다.

영상을 시청하면서 이제야 저번주에 영상시청중 초기에 나왔던 부분중 이해가 안가는 

글자들에대해 개념을 알수 있었다.

지금까지 강의를 보면서 영상에서 간단하게나마 초기에 좀더 큰 틀로 개념 설명한뒤 그다음에 세부적으로 들어가는게 나을거 같다는 생각이 들어 좀 아쉽다.

내일 도 영상보면서 이해가 안가거나 특정부분은 좀더 뒤에 영상을 보면서 봐야 이해가 가겠다는 생각이 든다

금일 배운 것

1. Java 문법 종합반 2주차 영상강의 시청 / 7개 강의시청, 2주차 숙제

2-10 반복문 활용 연습
2-11 배열 개념소개 및 선언 조회 실습
2-12 얕은 복사, 깊은 복사, string 배열
2-13 디자인 배열 및 배열 실습
2-14 컬렉션 소개
2-15 컬랙션 List
2-16 컬렉션 Stack, Queue, Set, Map
2주차 숙제

문제점

1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해

- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

 

2. 구조 생성을 익히는데 어려움

3. 숙제풀이시 예제에 맞춰서 무엇을 구성하고 어떻게 구조가 들어가야 되는지 감이 안옴

 

느낀점

일차적인 활용은 이해되었고 개념도 이해는 되었다만 숙제를 풀기 위해 구조를 만드는 방법에 대해서는 아직

전혀 감이 오지 않는다

어째서 이걸로 시작해야하고 여기서 왜 이렇게 적용되야 하며 어떻게 나와야 하는지를 해야 하는데

틀이 잡히지 않는다

예제 해결 영상을 보면서 어떻게 구성이 되는지는 이해 했다만 여기에 익숙해지려면 기초를 더 탄탄히 다져서

내가 원할때 바로바로 쓸수있도록 개념자체가 머리에 있어야만 될거 같다

금일 배운 것

1. Java 문법 종합반 2주차 영상강의 시청 / 9개 강의시청

2-1 소개 및 사칙연산
2-2 비교연산자, 논리연산자
2-3 대입연산자
2-4 기타연산자
2-5 비트연산자, 연산자 우선순위
2-6 if
2-7 switch
2-8 for
2-9 while, break, continue

 

문제점

1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해

- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

 

2. 구조 생성을 익히는데 어려

 

느낀점

오늘은 영상을 보면서도 잘이해가 되지않아서 반복적으로 돌려 보았다.

구조 생성에 대해 익숙해져야 하는데 아직 많이 미흡 한거 같다

금일 배운 것

1. Java 문법 종합반 1주차 영상강의 시청 / 총 9개 강의 시청, 1개 문제 풀기

1-1 자바 역사와 특징 소개
1-2 JVM
1-3 첫 번째 프로젝트 생성
1-4 주석 및 println 메서드 소개 및 실습
1-5 변수 개념 및 기본형변수 타입 소개
1-6 참조형변수타입 및 래퍼클래스타입 실습
1-7 숫자와문자(ascii)
1-8 변수타입(심화)
1-9 형변환
1주차 숙제
 
2. 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

문제점

1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해

- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리

 

2. 1주차 숙제 에서의 답 해결에서 오류 발견

- 오류 내용 : 시행한 코드대로 출력이 안됨

숙제내용 ( 입력값과 출력값 코드를 작성하여 예시작성시 예시답변과 동일하게 나오게하기 )

  • 입력값
    • 내가 좋아하는 요리 제목을 먼저 입력합니다.
    • 요리 별점을 1~5 사이의 소수점이 있는 실수로 입력해주세요. (ex. 3.5)
    • 이어서 내가 좋아하는 요리 레시피를 한 문장씩 10문장을 입력합니다.
  • 출력값
    • 입력이 종료되면 요리 제목을 괄호로 감싸서 먼저 출력 해줍니다.
    • 이어서, 요리 별점을 소수점을 제외한 정수로만 출력해줍니다. (ex. 3)
    • 바로 뒤에 정수별점을 5점만점 퍼센트로 표현했을 때 값을 실수로 출력해줍니다. (ex. 60.0%)
    • 이어서, 입력한 모든 문장 앞에 번호를 붙여서 모두 출력 해줍니다.

ex) 입력 예시

백종원 돼지고기 김치찌개 만들기
4.5
돼지고기는 핏물을 빼주세요.
잘익은 김치 한포기를 꺼내서 잘라주세요.
냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
다진마늘 한스푼, 설탕 한스푼 넣어주세요.
종이컵으로 물 8컵 부어서 센불에 끓여주세요.
핏물 뺀 돼지고기를 넣어주세요.
된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
중불로 줄여서 오래 끓여주세요~!!	
마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^

예시 출력

[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4 (80.0%)
1. 돼지고기는 핏물을 빼주세요.
2. 잘익은 김치 한포기를 꺼내서 잘라주세요.
3. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
4. 다진마늘 한스푼, 설탕 한스푼 넣어주세요.
5. 종이컵으로 물 8컵 부어서 센불에 끓여주세요.
6. 핏물 뺀 돼지고기를 넣어주세요.
7. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
8. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
9. 중불로 줄여서 오래 끓여주세요~!!	
10. 마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^

이에 대해 내가 작성한 코드답

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        String title = sc.nextLine();
        float rate = sc.nextFloat();
        String title = sc.nextLine();
        String input1 = sc.nextLine();
        String input2 = sc.nextLine();
        String input3 = sc.nextLine();
        String input4 = sc.nextLine();
        String input5 = sc.nextLine();
        String input6 = sc.nextLine();
        String input7 = sc.nextLine();
        String input8 = sc.nextLine();
        String input9 = sc.nextLine();
        String input10 = sc.nextLine();

        System.out.println("[ " + title + " ]");
        int intRate = (int)rate;
        System.out.print("별점 : " + intRate);
        double percentageRate = intRate * 100 / 5.0;
        System.out.println(" (" + percentageRate + "%" + ")");
        System.out.println("1. " + input1);
        System.out.println("2. " + input2);
        System.out.println("3. " + input3);
        System.out.println("4. " + input4);
        System.out.println("5. " + input5);
        System.out.println("6. " + input6);
        System.out.println("7. " + input7);
        System.out.println("8. " + input8);
        System.out.println("9. " + input9);
        System.out.println("10. " + input10);
    }
}

내가 작성한 코드답으로 시행했을시 java 답변

[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4 (80.0%)
1.
2. 돼지고기는 핏물을 빼주세요.
3. 잘익은 김치 한포기를 꺼내서 잘라주세요.
4. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
5. 다진마늘 한스푼, 설탕 한스푼 넣어주세요.
6. 종이컵으로 물 8컵 부어서 센불에 끓여주세요.
7. 핏물 뺀 돼지고기를 넣어주세요.
8. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
9. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
10. 중불로 줄여서 오래 끓여주세요~!!

문제점 발견

원했던 예시출력에서 System.out.println("1. " + input1); 답변이 1. 돼지고기는 핏물을 빼주세요로 나와하나

전부 한줄씩 밑으로 밀려서 내용이 나옴

 

강의 해결 답변

import java.util.Scanner;

public class Main01 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String title = sc.nextLine();
		float rate = sc.nextFloat();
		String input1 = sc.nextLine();
		String input2 = sc.nextLine();
		String input3 = sc.nextLine();
		String input4 = sc.nextLine();
		String input5 = sc.nextLine();
		String input6 = sc.nextLine();
		String input7 = sc.nextLine();
		String input8 = sc.nextLine();
		String input9 = sc.nextLine();
		String input10 = sc.nextLine();

		title = "[ " + title + " ]";  // [ 제목 ]
		System.out.println(title);
		int intRate = (int)rate; // 강제 형변환
		System.out.println(intRate);
		double percentageRate = intRate * 100 / 5.0; // 자동 형변환
		System.out.println(percentageRate);
		System.out.println("1." + input1);
		System.out.println("2." + input2);
		System.out.println("3." + input3);
		System.out.println("4." + input4);
		System.out.println("5." + input5);
		System.out.println("6." + input6);
		System.out.println("7." + input7);
		System.out.println("8." + input8);
		System.out.println("9." + input9);
		System.out.println("10." + input10);
	}
}

강의 해결 답변은 내 답변과 크게 차이 나지않으며 이 해결답변으로도 동일한 문제점 발생

 

- 오류 해결 : 입력 값에서 float rate = sc.nextFloat(); 밑에 sc.nextLine(); 추가

오작동 이유는 숫자 입력후 개행을 위한 문자가 제거되지 않았기 때문, 

개행문자는 \n 이며 이것이 숫자다음오는 개행문자로 이게 input1으로 들어가 출력되어

1. 자리에 빈칸으로 출력이됨

다시말해서 작동후

'4.5'
'돼지고기는 핏물을 빼주세요.'

라고 입력해줫지만 실제로는

'4.5'

'\n' = 빈칸으로 나옴

'돼지고기는 핏물을 빼주세요.'

형태로 입력이되어서 문제가 됨.

이를 해결위해 입력값하단에 숫자입력후 개행문자를 제거하는 코드를 입력함

 

느낀점

Java 기초에 대해 알게 되었음.

학습하면서 용어 및 개념에 대해서 개인적으로 정리하면 좀더 습득이 잘됨.

금일 오류에 대해 튜더님과 대화 하면서 강의가 만능은 아니라는 것을 확인함.

이후 튜더님 조언으로 다른 사람과 비교했을때 배움속도가 느리더라도

기본개념을 정확하게 이해해야 지금처럼 문제점을 바로바로 찾을수 있으며

실력향상에 도움을 준다는 것을 말해 주시면서 현재 내가 배우는 방법이 틀리지 않았다고 느낌.

 

프로젝트

1. KEEP

협업

  • 기능별로 개발 역할 분담
  • Git으로 협업이 익숙하지 않은 상황에서 Live share로 바로 적용하고 확인할 수 있었음

기술

  • Bootstrap과 Jquery의 레퍼런스를 공부해서 잘 적용했음
  • Rest API를 설계한대로 파이어베이스의 실시간 데이터베이스를 활용하여 개발함

2. PROBLEM

협업

  • git 사용의 미숙함과 git 사용 규칙 미지정
    • git 기능 사용에 대한 소극적인 태도
  • 구체적이지 않은 프로젝트 기획
    • DB & API의 구체적인 설계 필요
    • 작업 진척도 체크리스트 및 작업별 일정 미흡

기술

  • 낮은 수준의 코드, 언어, 문법 개념 및 지식
    • ex. HTML의 레이아웃 속성 inline, block, flex 개념 미흡
  • 리팩토링 시도를 안 한 점
    • 시간이 부족하긴 했지만.. 아쉬움

3. TRY

협업

  • 각 담당 기능 별 코드 리뷰
  • 각 담당 기능 별 체크리스트 작성
  • 팀원 개인의 역량을 파악하는 시간을 갖기
    • 할 수 있는 것과 없는 것의 명확한 구분 필요
  • 정기 소통 시간 계획
    • 저녁 정기 미팅: 진행 현황 공유
  • 코딩 컨벤션 정하고 개발
  • Git, Github 적극적인 사용

기술

  • 리팩토링 시도
    • 코드 리뷰를 통한 더 나은 코드 모색
    • 기능별 함수 모듈화 적극 시도

느낀 점

김민주

css 작업에 익숙하지 않아 제 화면을 꾸미는데 어려움을 겪었고 다음 프로젝트에서 제 화면에 css 작업을 해야한다면 css에 대한 숙련도를 향상시켜서 이러한 부분을 개선하고자 합니다.

김대영

좋은 팀원들을 만나 코드에 대해 많이 배울 수 있었습니다. 아직 전반적인 지식이 부족하여 참여에 어려움을 느꼈지만 팀원들의 코드를 보면서 심화된 부분에 대해서 알아갈 기회를 가졌다는게 정말 감사한 부분이었습니다.

김민중

이번에 미니프로젝트를 진행하며 팀원들과 역할 분담도 하고 소통하며 함께 문제를 해결하면서, 협업의 장점과 중요성을 알아가는 시간이어서 정말 좋았습니다. 다음에는 다양한 협업 툴 사용과 코드 컨벤션을 지키면서 좀 더 좋은 코드로 개발하는 것을 목표로 하겠습니다!

박지환

미니 프로젝트를 진행하면서 웹 디자인부분과 깃 협업 관련한 미숙함 문제에 아쉬움을 느꼈습니다. 다음 프로젝트를 할때는 이를 신경써서 만들고 싶습니다!

김진훈

팀 프로젝트로 짧게나마 협업을 하면서 협업에 필요한 것들을 생각하는 계기가 되어서 많이 배웠습니다!

깃과 깃허브를 더 능숙하게 사용해서 코드 버전을 관리하고 협업하는 방법을 배우고 싶다고 생각했습니다. branch를 단순히 사용하는 것은 쉬워도 협업하며 버전 관리를 능숙하게 하는 것은 어려운 일이었습니다.

처음에 코딩 컨벤션을 정하지 않고 시작한게 아쉬웠습니다. 다양한 스타일의 코드가 합쳐지다 보니 가독성이 좋지 않았습니다.

 

 

후일담

오늘 다른 팀들의 발표를 보며 여기서 공부하는 과정은 백엔드 이지만 그에 못지않게 프론트에 관해서도 정말 많은 경험을 가지고 있다는것을 알게 되었다.

다른팀 발표시 프로젝트 시 누가 어떤 부위를 바탕으로 작업을 했고 어떤 문제점이 생겼으며 이를 해결하기위해 어떤 노력을 햇는지 까지 언급하며 설명했는데 정말 많은 것을 보고 배울수 있었다.

앞으로도 다음 프로젝트시 이를 경험삼아 좀더 세부적으로 작업을 할수 있을거 같다.

오늘 공부한 내용

  • HTML 구조, CSS 기초 복습
  • 1,2,3,4주차 영상강의에서 만들었던 페이지를 다시 만들어 보기

 

어려웠던 내용

  • 작업시 바로바로 나오지 못하는 키워드와 키워드에 대한 개념과 구조를 알고 있어도 적용하는데에 대한 미흡

 

 

오늘의 느낀점

오늘은 토요일 오전 잠시동안 처음 배웠던 CSS기초에 대해 재복습하며 다시한번 페이지를 작성해보았다.
구조는 어렵지 않지만 작성시 알파벳처럼 작성히 물흐르듯이 나오게끔 하려면 머리에 각인될정도가 되야하는데
앞으로도 반복적으로 하다보면 괜찮을거라 생각된다.
 

+ Recent posts