Spring을 공부하면서 개인 과제가 나갔다
개인 과제를 하던 중 동료가 나의 코드를 보고 피드백을 해줬다
나는 서로 코드를 보고 피드백을 하며 같이 성장하는 모습을 그린다
하지만 남의 코드를 봐도 다른 방법이 떠오르지 않아 피드백만 받는다 ㅠㅠ
나도 피드백을 하고 같이 해줘야 서로 실력이 올라갈텐데..
내 코드를 보면 아래와 같이 불필요하게 중첩문을 너무 많이 사용한다
내가 봐도 코드가 지저분하다
한눈에 보기 좋게 바꾸면 팀 프로젝트 할때 팀원들도 보기 쉬울것이다
public Long updateSchedule(Long id, String inputPassword, ScheduleRequestDto scheduleRequestDto) {
Schedule schedule = scheduleRepository.findById(id);
if (schedule != null) {
if (inputPassword.equals(schedule.getPassword())) {
scheduleRepository.updateSchedule(id, scheduleRequestDto);
return id;
} else {
throw new IllegalArgumentException("비밀번호 불일치");
}
} else {
throw new IllegalArgumentException("일정이 존재하지 않습니다");
}
}
중첩 반복문 > Early Return 패턴 적용
훨씬 더 깔끔해 보이고 다른사람이 볼때도 보기 쉬울거 같다
public Long updateSchedule(Long id, String inputPassword, ScheduleRequestDto scheduleRequestDto) {
Schedule schedule = scheduleRepository.findById(id);
if (schedule == null) {
throw new IllegalArgumentException("일정이 존재하지 않습니다");
}
if (!inputPassword.equals(schedule.getPassword())) {
throw new IllegalArgumentException("비밀번호 불일치");
}
scheduleRepository.updateSchedule(id, scheduleRequestDto);
return id;
}
Early Return
위와 같이 중첩된 조건문 보다는 말 그대로 Early Return,
if가 나가면은 return if가 나가면은 return , , ,
조건문을 만족할 때 일찍 반환하는것을 의미한다.
그래서 Early Return의 장점과 단점을 한번 찾아봤다.
Early Return의 장점
• 코드를 간결하기
읽기 쉽게 만들어 준다 (가독성 향상)
• 유지보수 용이
• 오류 방지
• 디버깅 용이성
Early Return의 단점
• 로직이 복잡해지면 코드가 장황해 질 수 있다
• 테스트코드 작성할 때 복잡 해 질 수 있다
단점보다는 장점이 더 많다고 생각한다나도 좋은 코드를 작성 하는 습관을 더욱더 길러야 겠다
Spring MVC란 무엇일까?
MVC : Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나
MVC 패턴은 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리
Model :
Model
데이터와 비즈니스 로직을 담당
데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행
View
사용자 인터페이스를 담당
사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현
Controller
Model과 View 사이의 상호작용을 조정하고 제어
사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트
🕹 MVC 패턴은 소프트웨어를 구성하는 요소들을 분리함으로써
코드의 재사용성과 유지보수성을 높이고, 개발자들 간의 협 업을 용이하게 한다
따라서 소프트웨어를 개발할 때, MVC 패턴을 적용하여 구조를 잘 설계하는 것이 중요 !!
'TIL' 카테고리의 다른 글
TIL - 2024/05/21 (0) | 2024.05.21 |
---|---|
TIL - 2024/05/20 (2) | 2024.05.20 |
TIL - 2024/05/16 (0) | 2024.05.16 |
TIL - 2024/05/14 (4) | 2024.05.14 |
TIL - 2024/05/13 (4) | 2024.05.13 |