항해 2주차 회고 (WIL)

Lee·2022년 1월 23일
0

항해99

목록 보기
14/50

알고리즘(달리기반)

알고리즘 주차 전 달리기반을 선택하여 40개의 알고리즘 문제를 목표로 새로운 조원들과 함께 한 주를 시작하게 되었다. 한 주 동안 자바를 사용해 문제를 해결하면서 여러 메소드, arraylist, set 등의 여러 기능들을 사용하면서 익숙해 질 수 있었고 문제해결 능력도 기를 수 있었던 시간이었다. 그리고 조원들과 함께 풀이 시간을 가지면서 한 문제에 대한 다양한 해결방법과 시각을 배울 수 있었다.

알고리즘 (챌린지)

달리기반 문제를 모두 해결해 챌린지 문제를 도전해 보았다. 확실히 난이도가 있었으며 각각의 문제를 해결하기 위해 여러가지를 생각해야 했던 것 같다.

개인공부

화요일에 알고리즘 챌린지 문제를 완료해 남은 기간동안 할 것을 생각하다가 내가 부족한 부분을 채우기로 결정했다. 우선 네트워크에 대해 공부를 하기로 결정해 OSI 7개층과 TCP/IP 계층에 대해 알아보고 어떤 방식으로 네트워크가 돌아가는지 알아보는 중이다. 여유가 된다면 이 내용에 대해 블로그에 정리해보는 시간을 가지는 것도 좋을 것 같다.

주특기 기본 주차 시작

주특기 주차가 시작되어 처음으로 spring이라는 것을 실행시켜서 서버를 만들어 보았다. 강의를 통해 기본기를 쌓아 과제를 준비하고 있으나 아직은 어색한 느낌이 강하다. 개인과제를 수행하면서 spring에 익숙해지도록 노력해야겠다.

학습내용

1. 객체 지향 프로그래밍

객체 지향 프로그래밍이란

객체란 실상활에서 쓰는 모든 것을 말하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 전의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다.
객체는 클래스에서 생성된 인스턴스이다. 따라서 객체 지향 프로그램은 객체와 객체 간의 연결고 되어 있으며 각각의 객체 안에 자료구조와 알고리즘이 들어있는 것이다.

객체 지향 모델링은 기능이 아닌 객체가 중심이 되며 누가 어떤 일을 할 것인가가 핵심이 된다. 객체를 도출하고 각각의 역할을 정의해 나가는 것에 초점을 둔다.

객체 지향 프로그래밍의 특징

  1. 추상화
  • 객체들의 공통적인 특징을 도출(ex 클래스 정의)
  1. 캡슐화
  • 실제로 구현되는 부분을 외부에 드러나지 ㅇ낳도록 하여 정보 은닉 가능
  • 객체가 독립적으로 역할을 할 수 있도록 데이터와 기능을 하나로 묶어 관리하는 것
  1. 상속성
  • 하나의 클래스가 가진 특징을 다른 클래스가 그대로 물려받는 것
  • 이미 작성된 클래스를 받아서 새로운 클래스를 생성하는 것
  1. 다형성
  • 오버라이딩 : 부모클래스의 메소드와 같은 이름을 사용하며 매개변수도 같되 내부 소스를 재정의하는 것
  • 오버로딩 : 같은 이름의 함수를 여러 개 정의한 후 매개변수를 다르게 하여 같은 이름을 경우에 따라 호출하여 사용하는 것

2. JVM

JVM 이란

java로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상머신으로 이를 통해 java를 실행시켜 OS에 종속되지 않는 특성을 가진다.

특징

  1. Java와 OS 사이에서 중재자 역할을 수행하며 CPU와 운영체제의 종류와 무관하게 동일하게 동작하는 것을 보장한다.
  2. 프로그램 메모리를 관리하고 최적화 한다.
profile
발전하고 싶은 백엔드 개발자

0개의 댓글