일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우선순위 큐(priorityqueue)
- 개발자 취업
- wil
- 정렬 알고리즘(sort algorithm)
- Spring
- GIT
- 코딩공부
- Til
- 코딩
- Grafana
- Java
- github
- 자료구조
- css
- 메서드
- 항해99
- Entity
- aop
- 코딩테스트 준비
- 배열
- HTML
- 이진 탐색(binary search)
- 면접(java
- 회고
- 자바
- ArrayList
- cs 공부)준비
- 프로그래머스
- 99클럽
- 코딩문제
- Today
- Total
hayu's 개발 일지
[WIL]240211 객체지향 프로그래밍 / 항해99 회고 본문
객체 지향 프로그래밍(Object-Oriented Programming, OOP) 이란?
- 객체 지향 프로그래밍이란 객체를 지향하는 프로그래밍을 말한다. 객체들의 상호작용을 표현한 것이다. (= 객체들의 모임)
객체(object)란?
- 객체는 클래스에 실제 내용물을 담아 실체화한것을 말한다. 즉, 객체는 실제 세계에서 존재하는 사물이나 개념 등을 프로그래밍에서 표현한 것이다.
객체 지향 프로그래밍 언어
- C++ , C# , JAVA , Pytnon 등이 있다.
객체 지향 프로그래밍의 특징
- 객체 지향 프로그래밍의 특징에는 추상화, 캡슐화, 상속, 다형성이 있다.
추상화
- 불필요한 정보를 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것이다.
- 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 말한다.
캡슐화
- 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다.
캡슐화의 기능
- 데이터 보호: 외부로부터 클래스에 정의된 속성과 기능들을 보호한다.
- 데이터 은닉: 내부의 동작을 감추고 외부에는 필요한 부분만 노출한다.
즉, 외부로부터 클래스에 정의된 속성과 기능들을 보호하고, 필요한 부분만 외부로 노출될 수 있도록 하여 각 객체 고유의 독립성과 책임 영역을 안전하게 지키고자 하는 목적이 있다.
상속
- 상위 클래스로부터 확장된 여러 개의 하위 클래스들이 모두 상위 클래스의 속성과 기능들을 간편하게 사용하게 한다.
- 클래스들 간에 공유하는 속성과 기능들을 반복적으로 정의할 필요없이 한 번만 정의해두고 간편하게 재사용할 수 있어 반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근하여 사용할 수 있다.
- 그러나 상위 클래스의 변경이 어렵고, 불필요한 클래스가 증가할 수 있다. 그리고 상속이 잘 못될 수 있다는 단점이 있다.
다형성
- 어떤 객체의 속성이나 기능에 따라 여러 가지 형태를 가질 수 있는 성질이다.
- 어떤 객체의 속성이나 기능이 그 맥락에 따라 다른 역할을 수행할 수 있는 객체 지향의 특성이다.
- 메서드 오버라이딩과 메서드 오버로딩이 있다.
오버라이딩: 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 것이다.
오버로딩: 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것이다.
객체 지향 프로그래밍의 장단점
장점
- 프로그램을 보다 유연하고 변경이 쉽게 만들 수 있다.
- 코드의 변경을 최소화하고 유지보수를 하는데 유리하다.
- 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현할 수 있다.
단점
- 처리 속도가 상대적으로 느리다.
- 용량이 커질 수 있다.
JVM(Java Virtual Machine) 이란?
- JVM은 자바 가상 환경(Java Virtual Machine)의 줄임말이다. 자바 가상 환경은 자바 실행 환경을 만들어주는 가상 머신이다.
- Java는 기계어로 컴파일을 해줘야 한다. 그런데 JVM을 거쳐 운영체제(OS)에 도달하기 때문에 JVM 이 읽을 수 있도록 하나의 바이트 코드(.class)로 변환한다. 즉, Java는 하나의 바이트 코드(.class)로 변환하고 그것을 JVM이 읽어 운영체제(OS)에서 실행하는 것이다.
Java 를 컴파일 하는 방법
- Java 컴파일러로 .java 파일을 .class 즉, 바이트 코드로 만드는 과정을 알아보자.
- Java 컴파일러는 JDK를 설치하면 javac.exe라는 실행 파일 형태로 설치된다. 정확히는 JDK 의 bin 폴더(텍스트 폴더)에 javac.exe 로 존재한다. Java 컴파일러의 javac 라는 명령어를 사용하면 .class 파일을 생성할 수 있다.
1. .java 파일을 .class 파일로 변환시킨다.
C:\Users\owner>cd Desktop
- Windows를 기준으로, cmd 창을 열고 해당 .java 파일이 있는 곳으로 이동한다.
2. 이동 후, 해당 위치에서 javac 명령어로 컴파일을 진행한다.
C:\Users\owner\Desktop>javac test.java
- 바탕화면(현재 위치)에 .class 파일이 생성된 것을 확인할 수 있다.
실행하기
C:\Users\owner>cd Desktop
C:\Users\owner\Desktop>java test
.class 파일이 있는 곳으로 이동 후 java <.class 파일 이름> 을 입력하여 실행한다.
-> 내부의 코드가 실행된 것을 확인 할 수있다.
참고
- https://backendcode.tistory.com/161
- https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EA%B0%80%EC%83%81_%EB%A8%B8%EC%8B%A0
이번 한 주 동안 배운 것
- 이번 한 주 동안은 JAVA 언어를 배웠다. 변수, 연산자, 조건문, 반복문을 배우고 코드도 입력해 보았다.
- 팀 프로젝트도 진행해보았다. 그리고 코드 리뷰도 진행했다.
느낀 것
- 배우고 있는 모든 것들이 중요하겠지만, 특히 조건문과 반복문을 많이 사용한다는 것을 알았다. 코드를 짤 때면 거의 들어가는 것을 이었다. 조건문과 반복문을 어떻게 잘 활용하느냐에 따라 코드도 많이 달라졌다.
- 특히 코드 리뷰를 하면서 많이 배웠다. 다른 팀과 코드 리뷰를 하는데 우리 팀의 코드를 어떻게 고치면 더 깔끔해 질지, 어떤 코드는 삭제해도 되는 코드인지 등의 피드백을 들었다. 팀원분과 함께 코드를 확인할 때는 생각하지 못했던 부분이라서 코드 리뷰에서 많이 배웠다.
잘한 것
- 처음에 팀 프로젝트의 내용을 보고 쉽지 않을 것이라고 생각했다. 그러나 팀원분과 함께 코드를 짜나가는 것에 스스로 뿌듯했다. 서로의 생각을 공유하며 프로젝트를 만드는 과정이었다.
아쉬웠던 것
- 코드 리뷰를 하며 많이 느꼈지만, 아직은 코드의 작동이 목적이기 때문에 깔끔하지 못하다는 것을 알았다. 조금 더 깔끔한 코드를 짜는 것을 연습하는 것이 좋을 것 같다.
회고
- 이번 주는 나름 열심히 했지만, 몰입의 시간이 좀 부족했던 것 같다. 아무래도 처음 사용해보는 프로그램들이 많아서 헤매는 시간도 있었기 때문이지 않을까 생각한다. 그래도 계속해서 몰입하고 공부하다 보면 조금씩 성장한 나를 발견할 수 있지 않을까 생각한다.
- 9조의 팀원들도 많은 도움을 주셔서 너무 감사했다. 모르는 것을 친절하게 알려주셔서 많은 도움이 되었다.
'항해99 > 회고' 카테고리의 다른 글
[WIL]240303 항해99 주특기 2주차 회고 (0) | 2024.03.03 |
---|---|
[WIL]240225 항해99 주특기 1주차 회고 & HTTP (0) | 2024.02.25 |
[WIL]240218 페어 프로그래밍 (1) | 2024.02.18 |
[WIL]240204 항해99 회고 (0) | 2024.02.04 |
[회고] 항해99 사전트랙 및 입학시험 후기 (2) | 2024.01.30 |