일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- c언어
- JSP/Servlet
- 컴퓨터비전
- ChatGPT
- html/css
- 상속
- 데이터분석
- 개발일기
- 정보처리기사실기
- 자바 실습
- 데이터베이스
- JDBC
- 중학1-1
- 순환신경망
- 딥러닝
- 정보처리기사필기
- 중학수학
- 혼공머신
- 자바
- 디버깅
- 연습문제
- 자바스크립트심화
- 머신러닝
- 파이썬
- 컴퓨터구조
- SQL
- CSS
- 자바스크립트
- rnn
- JSP
- Today
- Total
목록2024/12 (279)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
아침에 수학 공부를 2시간 정도 하고 이제 본격적으로 자바 공부를 하려고 한다. 3시간 정도 집중해서 공부를 할 생각이다. 연습 문제는 총 30문제나 되는데 이론편과 실습편으로 나누어져 있다.이론편은 조금 풀만 하고 실습편은 정말 어려워서 손도 못대는 경우가 많았다. 그래도 정답을 찾아가면서라도 풀어야 공부가 되는 걸 그동안의 경험으로 알게 되었다. 우선 이론 문제부터 풀어보려고 한다. 문제가 많으니 나누어서 한 포스트에 4~5개의 문제를 풀게될 것 같다. 새벽에 1번 문제를 풀려다가 너무 어려워서 시도만 했었다. 연습문제 이론편 문제 풀기 문제 1번처음에 이 문제를 이해하지 못해 한참을 헤맷는데 이제 알 것 같다. obj은 모든 자바 프로그램의 부모 클래스이다. 여기서 A라는 객체를 만들었으..
지난 번에 풀었던 STEP A의 틀린 문제를 오늘 아침에 풀어보았다. 아침을 먹고 나면 공부하기 싫을까봐도 몇 문제를 미리 풀고 식사 후에 나머지 문제를 풀었다.총 7문제인데 굉장히 어려운 문제들만 모아놓은 것 같았다. 실수로 틀린 건 하나도 없었고 모두 사고의 전환을 하지 못해서 틀린 문제들이었다. 그중에서 조금만 더 비틀어서 고민했다면 답이 나왔을 문제도 있었겠지만 그래도 답에는 접근하지 못했을 것 같았다. 에이급 수학 STEP A 풀었던 문제 에이급 수학 STEP A 오답 풀이 노트 학습을 마치고오늘까지 해서 가장 어려웠던 문제를 모두 풀었다. 지난 10월 초부터 수학 공부를 꾸준히 하려고 노력 중이..
며칠 전에 풀었던 수학 문제인데 오늘에서야 학습일지를 쓰게 되었다. 수학 공부를 2주 이상 쉬었지만 다시 공부에 집중할 수 있는 것을 보면 그동안 한달 반 동안 매일 꾸준히 공부 습관을 들인 보람이 있는 것 같다.이제부터는 진짜 쉬지 않고 하루도 거르지 않고 매일 1시간 이상씩 공부를 하기로 다짐해본다. 에이급 수학은 문제가 많이 어려워서 1/3쯤 풀고 나머지는 최상위 수학 문제집을 풀고 나서 이서서 풀었다. 에이급 수학 STEP A 문제 풀기 두 번째이 문제는 시간이 많이 걸려서 이틀에 걸쳐서 풀었다. 학습을 마치고문제를 푼 건 11월 22일과 28일이다. 정말 띄엄띄엄 공부를 했다. 그리고 나서 3일 동안 공부를 쉬고 오늘 ..
상속 단원을 마무리하며 도전 문제를 풀어보려고 한다. 문제가 정말 어려워서 지금 내 수준에서는 혼자서는 절대로 풀 수 없는 문제였다. 풀이를 참고하며 풀어볼 예정이다. 단원 마무리하기 Bear의 Fish 먹기 게임 만들기 문제 풀기 GameObject 클래스 Bear 클래스 fish 클래스 Game 클래스 이제 클래스별로 설명을 해보겠다. 코드 분석하기 1. Game 클래스이 클래스는 게임의 전체 로직을 관리한다.멤버 변수MAX_X, MAX_Y : 게임 맵의 크기를 나타낸다.map : 2D 배열로 게임의 상태를 저장. 기본 값은 '-'m : 게임 오브젝트를 담는 배열(Bear와 Fish)state : 게임 상태를 나타낸다.0 : 게임 진행 중1 ..
인터페이스에 관한 공부를 이어서 진행해 보겠다. 인터페이스의 목적자바에서 인터페이스를 두는 진정한 목적은 무엇일까? 그림 5-27과 앞의 모바일 전화기를 표현한 MobilePhoneInterface를 가지고 설명해 보자.MobilePhoneInterface 인터페이스는 모바일 전화기가 가지고 있어야 하는 기능(메서드)을 명시하며, 삼성은 MobilePhoneInterface 인터페이스를 구현하여 SamsungPhone 클래스를 만들고, LG는 LGPhone 클래스를 만든다.이 두 클래스는 모두 MobilePhoneInterface 인터페이스에 나열된 메서드와 동일한 이름의 메서드를 구현하겠지만, 삼성과 LG가 구현한 내용은 서로 다를 것이다. 인터페이스로 인한 다형성이 실현되는 것이다. 한편, 모바..
이제 마지막 남은 인터페이스 공부를 시작해보겠다. 새벽에 1시간 정도는 추상 클래스를 공부했다. 그동안 프로그래밍을 하면서 인터페이스를 알지 못해서 수업 시간에 선생님이 설명하시는 것들을 잘 이해하지 못할 때가 많았다.이번에 확실히 익혀보기로 하자. 인터페이스인터페이스(interface)는 RS-232 인터페이스, USB 인터페이스 등 컴퓨터 주변 장치에서 많이 사용하는 용어이다. 여기서 인터페이스는 서로 다른 하드웨어 장치들이 송호 데이터를 주고받을 수 있는 규칙을 의미한다.그러면 이런 규격이 왜 필요할까? 컴퓨터 메인 보드를 만드는 회사와 주변 장치를 만드는 회사 사이에는 약속이 필요하기 때문이다. 인터페이스는 컴퓨터뿐 아니라 규격화된 부품을 사용하여 조립하는 자동차 등, 주변의 다양한 사례를 ..
추상 클래스는 상속에서 슈퍼 클래스로 사용된다. 지금부터 추상 메서드와 추상 클래스에 대해 알아볼 것이다. 추상 메서드추상 메서드란 선언은 되어 있으나 코드가 구현되어 있지 않은, 즉 껍데기만 있는 메서드이다. 추상 메서드를 작성하려면 abstract 키워드와 함께 원형만 선언하고 코드는 작성하지 않는다. 다음은 추상 메서드를 선언한 예이다.public abstract String getName();public abstract void setName(String s); 다음은 코드가 작성되어 있기 때문에 추상 메서드가 될 수 없다.public abstract fail() { return "Good Bye"; } // 컴파일 오류 추상 클래스 만들기추상 클래스가 되는 경우는 다음 2가지로서,..
메서드 오버라이딩에 대한 학습을 이어서 진행해보겠다. 벌써 11시 반이 다 되었지만 앞으로 3시간 안에 상속 단원의 개념 학습을 모두 마칠 생각이다. 그래야 오늘 새벽에 연습문제를 대부분 풀고 상속 학습을 마칠 수 있을 것 같다. 오늘은 가능하면 JDBC 공부를 시작해보려고 한다. 동적 바인딩 : 오버라이딩된 메서드 호출동적 바인딩(dynamic binding)은 실행할 메서드를 컴파일 시(compile time)에 결정하지 않고 실행 시(run time)에 결정하는 것을 말한다. 자바에서는 동적 바인딩을 통해 오버라이딩된 메서드가 항상 실행되도록 보장한다.다음 그림은 동적 바인딩의 두 사례를 보여준다. 그림 의 왼쪽에서 main()에서 shape() 객체를 생성하고, paint() 메서드를 호출하..
이번에는 메서드 오버라이딩에 대해서 공부해 보겠다. 메서드 오버라이딩의 개념메서드 오버라이딩은 슈퍼 클래스와 서브 클래스의 메서드 사이에서 발생하는 관계이다. 슈퍼 클래스에 선언된 메서드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메서드를 서브 클래스에서 재작성하는 것이다. 다음 그림은 메서드 오버라이딩의 개념을 보여준다. 서브 클래스에서 슈퍼 클래스의 메서드2()를 무시하기 위해 새로 메서드2()를 재작성한 사례이다. 외부에서나 내부에서 메서드2()를 호출하면 슈퍼 클래스의 메서드는 절대로 실행되지 않고 반드시 서브 클래스의 메서드2()가 실행된다. 메서드 오버라이딩은 슈퍼 클래스 메서드 무시하기 혹은 덮어쓰기로 표현할 수 있다. 이는 슈퍼 클래스의 메서드를 무시하고 서브 클..
새벽에 수업으로 들었던 업캐스팅과 다운캐스팅에 대한 학습을 진행해 보겠다. 캐스팅(casting)이란 타입변환을 말한다. 자바에서 클래스에 대한 캐스팅은 업 캐스팅(upcasting)과 다운 캐스팅(downcasting)으로 나뉜다. 업 캐스팅다음 그림을 살펴보자. 사람을 생물이라고 불러도 되며, 생물을 넣는 박스에 코끼리나 사람을 넣고 박스에 생물을 가리키는 팻말을 사용해도 무방하다. 왜냐하면 사람은 생물을 상속받았기 때문이다. 이와 비슷하게 자바에서 서브 클래스는 슈퍼 클래스의 속성을 상속받기 때문에 서브 클래스의 객체는 슈퍼 클래스의 멤버를 모두 가진다. 그러므로 서브 클래스의 객체를 슈퍼 클래스의 객체로 취급할 수 있다. 서브 클래스의 객체에 대한 레퍼런스를 슈퍼 클래스 타입으로 변환하는 ..