전체보기

· TIL
오늘 한 일 자바의 애너테이션을 조금 공부하다가, 리플렉션 API를 공부했다. 2023.10.23 - [Language/Java] - [Java] 리플렉션 API 간단 정리 [Java] 리플렉션 API 간단 정리 자바의 Reflection API는 런타임에 클래스의 내부 정보를 탐색하거나 수정할 수 있게 해주는 기능이다. 컴파일 시점에 타입이 결정되는 것을 런타임 시점으로 연기할 수 있다. 주로 다이나믹 로딩, ouohoon.tistory.com
· Tool/Java
자바의 Reflection API는 런타임에 클래스의 내부 정보를 탐색하거나 수정할 수 있게 해주는 기능이다. 컴파일 시점에 타입이 결정되는 것을 런타임 시점으로 연기할 수 있다. 주로 다이나믹 로딩, 테스트 자동화, 애너테이션 기반의 설정 등에서 사용된다. 사용 단계 클래스 정보 획득: 대상 클래스의 Class 객체를 획득한다. Class myClass = MyClass.class; 멤버 정보 탐색: 메서드, 필드, 생성자 등의 멤버 정보를 가져온다. Method[] methods = myClass.getMethods(); Field[] fields = myClass.getFields(); 동적 생성 및 접근: Class 객체를 이용해 동적으로 인스턴스를 생성하거나, 메서드를 호출하고, 필드에 접근한다..
· TIL
오늘 한 일 Spring boot에서 클라이언트 입력 값을 @Valid 애너테이션으로 검증하는 방법을 공부했다. 여러 예제를 봤는데 클라이언트의 입력 값은 보통 @Valid 애너테이션을 사용해서 검증한다. 복잡하면 검증 메소드를 만들어서 검증한다. 이와 관련된 글을 작성할 예정이다. 어제 만든 CUI 키오스크 고민 해결 튜터님이랑 얘기하면서 OOP에 대한 기준을 좀 잡았다. 내가 OOP 스타일을 지키면서 만들고 있는건지 확신이 없었는데, 객체의 추가/변경이 다른 객체에 영향을 최대한 주지 않으면서 가독성이 좋은 코드를 작성하는걸 목표로 해야겠다. SOLID 원칙도 지킬 수 있도록 해야지.
· Tool/Java
자바로 CUI 키오스크를 만드는게 개인 과제로 나왔다. 과제를 제출하는데 어려웠던 기술적인 부분을 적어달라고 하길래 고민했던 것들을 적었다. 코드는 깃허브에 올렸다. https://github.com/OuOHoon/nbc-chapter2-homework 고민 목록 상태 관리 키오스크의 상태에 따라서 행동하기 위해서 개발하다보니 방대한 클래스를 만들었다. 이 클래스는 가독성이 나쁘고 기능을 추가하기 어려워서 어떻게 관리하는게 좋을지 고민했다. 키오스크의 상태에 따라 관련된 필드와 메소드를 클래스로 만들어서 캡슐화 했는데, 기능 추가가 쉬워지고 가독성은 좋아졌지만 그만큼 관리해야 하는 클래스가 늘어나서 불편함을 느꼈다. // 상태 인터페이스 public interface KioskState { String ..
· TIL
오늘 한 일 디자인 패턴 학습 상태 패턴, 팩토리 패턴 학습함 키오스크 프로젝트 MVC 패턴으로 전환 및 기능 개발 중복 코드를 최대한 없애면서 만들려고 했다. 반복되는 코드가 보이면 메소드로 추출했다. 중복되는 필드나 메소드를 상황에 따라 인터페이스나 추상 클래스를 상속받아 없앴다. 협력하는 객체를 만드는 것은 무엇일까 고민했다. MVC 패턴이 객체가 협력하기 쉽도록 만들어주는 구조라고 생각했다. 근데 패턴보다 더 중요한 것이 실제 모델, 뷰, 컨트롤러 객체를 어떻게 만들 것인지다. 컨트롤러가 관리하는 상태가 많고, 상태와 관련된 로직이 복잡해서 컨트롤러의 상태를 클래스로 만들어서 캡슐화했다. 상태 패턴을 적용하면서 상태 1개당 상태 클래스, 상태 모델 클래스, 상태 뷰 클래스가 생겨서 클래스의 관리가..
· TIL
오늘 한 일 Chapter2 개인 과제 개발 기능 단위로 개발하는 것을 연습했다. 계속 여러가지 건들다가 한번에 커밋해서 커밋 메시지가 길어지고 제목으로 다 표현할 수가 없다. 좀 더 의식해야한다. 객체 관계를 먼저 생각하고 행동이 상태를 변하고, 객체의 결합도를 낮추면서 개발하는 것을 연습했다. 근데 결합도가 높은게 마냥 나쁜 것도 아니고 상황에 따라 다르다고 한다. 상황에 대한 기준을 세우는게 어렵다. 어떤 방법이 적절한지 상황에 따라 디자인 패턴을 공부하고 필요한 상황에 적용하려고 연습하고 있다. 상태 패턴으로 행동을 캡슐화 하는게 MVC 패턴의 미니 컨트롤러처럼 느껴졌다. 그러나 엄연히 다른 개념이다. 상태 패턴은 복잡한 상태 관련 로직을 캡슐화해서 가독성, 확장성, 유지보수에 이점을 가지려고 적..
도_유
'분류 전체보기' 카테고리의 글 목록 (12 Page)