WIL #1

What I learned
1. 객체지향 프로그래밍이란?
- 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식. 즉, "무엇을" 중심으로 프로그래밍 하는 방식이다.
2. JVM?
- JVM이란 가상 머신(Java Virtual Machine)으로, 자바 소스 코드를 컴파일하여 바이트코드(bytecode)로 변환한다. 이 바이트코드는 특정 플랫폼에 종속되지 않고 실행 가능한 중간 형태의 코드이다. JVM은 이 바이트코드를 해당 플랫폼의 기계어로 번역하고 실행함으로써 프로그램으로 실행한다. 중요한 기능 중에 자동으로 메모리를 관리해주는 가비지 컬렉션(Garbage Collection)이 있다. 이는 개발자가 명시적으로 메모리를 해제할 필요 없이 동적으로 할당된 메모리 자원을 관리할 수 있게 해준다. 구성요소로는 클래스 로더(Class Loader), 런타임 데이터 영역(Runtime Data Area), 실행 엔진(Execution Engine)이 있다. JVM은 자바의 핵심 부분이라 할 수 있으며, 이를 통해 Java 언어가 운영체제나 하드웨어에 대해 독립적으로 실행가능하며, 메모리 관리등을 자동으로 처리하여 효율적으로 개발할 수 있게 한다.
3. solid 5원칙
- 객체 지향 설계의 필수 원칙
- 소프트웨어 개발에서 객체 지향 설계는 유지보수성, 확장성 및 재사용성을 높이기 위한 중요한 요소이다. 이를 지원하기 위해 소프트웨어 설계 원칙 중 SOLID라는 다섯 가지 원칙이 있다. 이 원칙들은 개발자들이 코드를 더 견고하게, 유연하게 작성할 수 있도록 도와준다.
1) SRP, 단일책임원칙(Single Responsibility Principle)
하나의 클래스는 단 하나의 책임만 가져야 한다. 클래스가 변경되어야 하는 이유는 오직 하나여야 한다. 이렇게 하면 클래스를 변경할 때 다른 부분에 미치는 영향을 최소화할 수 있다.
2) OCP, 개방폐쇄원칙(Open/Closed Principle)
소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 새로운 기능을 추가할 때 코드를 변경하지 않고 확장할 수 있도록 설계해야 한다.
3) LSP, 리스코프 치환 원칙(Liskov Substitution Principle)
자식 클래스는 부모 클래스의 기능을 변경하지 않고 확장할 수 있어야 한다. 즉, 부모 클래스의 인스턴스를 대체해도 프로그램은 일관된 방식으로 동작해야 한다.
4) ISP, 인터페이스 분리 원칙(Interface Segregation Principle)
클라이언트는 자신이 사용하지 않는 인터페이스에 의존하지 않아야 한다. 따라서, 여러 개의 구체적인 인터페이스보다는 하나의 범용적인 인터페이스보다 낫다.
5) DIP, 의존성 역전 원칙(Dependency Inversion Principle)
고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 양쪽 모두 추상화에 의존해야 한다. 즉, 추상화된 인터페이스를 통해 상호작용해야 한다.
Next Week
1. Spring 스터디
2. Java 기본서 남은 부분 1회독 마무리
2-1) 김영한 Java 마무리
2-2) 프로그래머스 중급강의 1회독 마무리
3. 알고리즘 연습문제 마무리
Comment
- 할게 많아서 TIL 쓸 시간이 생각보다 안나온다. 쓰긴 써야할거같은데, 지금은 할게 너무많다. 아침 9시부터 최소 새벽 3시까지는 공부하고있었는데, 고민이다. 효율적인 시간분배와, 컨디션관리에 대해 고민해봐야겠다.
- 일단 첫주차는 100시간 채우는데 성공했다. 막상해보니 그렇게 어렵지 않았다. 오히려 100시간도 모자란느낌..? 온전히 집중할 수 있었던 순공시간으로 100시간은 못채워서 그런거겠지싶다. 그래도 지금 이 스탠스가 항해 끝날때까지 지치지않고 유지되었으면 좋겠다 정말로..
- 공부시간 그래도 순위권이었는데 토요일, 일요일 약속이있어서 토요일은 12시간만하고빠졌더니 순위가 쭉 떨어졌다. 은근 자극되서 다음주는 더 열심히..
- 잠깐 어수선한 분위기가 있었다. 그때 정말 다들 찝찝하기도하고 어수선해서그런지 집중을 못하더라. 안그래도 하루종일 어수선한데, 이 날은 밥먹을때 유튜브에서도 조차 개발자 취업상황 영상들을 알고리즘이 추천해주더라. 눈치없는 구글놈들..
- 벌써 가까워진 몇분이 있다. 은근 정말 나에게 큰 자극들이 되고 든든한 러닝메이트 역할을 해주신다. 그 사람들이 하차안했으면 좋겠다. 제발..