오늘 배운 것.
자바 강의 3주차,
접근 제어자가 아주 요물이었다.
처음 접하는 개념인지라...
구글링, 튜터님께 질문하며 궁금한 점을 찾아나갈 수 있었다.
Getter, Setter
Q. 외부에서 객체의 private 한 필드를 저장/수정할 필요가 있을 때 Setter 메서드를 사용한다고 배웠습니다.
그런데 여기에선 타이어 클래스에 모두 Public으로 되어있는데 왜 Car.java나 Main.java에서 setTire라고 접근했는지 의문입니다.
A. 직접 대입 car.tire = tires;을 할 경우는 단순히 참조 값을 변경합니다.
반면에 지금처럼 메서드 호출 car.setTire(tires);을 할 경우 추가적인 로직을 수행할 수 있게 됩니다.
객체지향프로그래밍 원칙을 따르려면 필드에 직접 접근하기보다는 getter/setter 등 메서드를 통해 접근하는 것이 좋습니다.
--> setter 메서드를 통해 한번 거쳐서 불필요한 값을 제어하는 등 유용하게 사용 가능하다.
궁금증: 필드명이 대문자 시작이면 어케되나
--> 관례상 클래스명이 대문자 시작, 필드명이 소문자 시작이기 때문에 그럴 일 없긴 한데... 작동은 되는 것 같다. 복습할 때 꼭 해봐야지.
찾아보니 JSON 사용하면서 클라이언트가 대문자로 시작해서 입력한 경우 이슈가 될 수 있었음.
그럴때는 @JsonSetter 어노테이션으로 property 이름을 명시해줘서 서버가 받는 이름을 소문자로 시작되게 만들더라.
머시기 어노테이션이 무슨 매커니즘인지 이해는 안되지만 이런 경우도 있다는걸 알았다.
https://gajy.tistory.com/29
오늘은 특강으로 웹 지식 전반에 대한 것이 있었다.
메소드와 URL의 조합으로 서버에 요청하고,
그에 따라 클라이언트는 응답을 받음.
(메소드+URL)
메소드: get, post, ...
URL: 밸로그/머시기/두시기[출처] https://mannhowie.com/rest-api
🔥API(Application Programming Interface)란?
오늘은 개인과제(키오스크 만들기)를 배포받고 팀원들과 첫 인사를 나누었多.
<팀 소통 노션 페이지>
<개인과제 발제>
생각보다 많은 양의 공부를 하진 못했다.
과제를 슬슬 진행해야 하는데 절대적인 시간이 부족하다.
마음이 조급해진다.
내일은 3주차 완강하고 4,5주차 학습을 목표로한다.
그렇지만 롱런을 목표로 체력관리도 놓치지 말자.
내일 아침은 일찍 일어나서 한바퀴 뛰고 와야겠다.