소개
교육자
전: 우아한형제들 기술이사, 카카오, SK플래닛
강의
전체18로드맵
전체3수강평
- 좋은 강의 감사합니다!
Benjamin M. Kwon
2024.04.29
0
- 제네릭 등 중급 2편 얼른기대됩니다~~ 예정대로 5월초에 나올까요~~?
ysangstar
2024.04.29
0
- good
손민혁
2024.04.29
0
- 명작
Victor
2024.04.29
0
게시글
질문&답변
2024.04.28
섹션6. 문제와 풀이
안녕하세요. 권정익님 1번째 질문에 대한 답변 "%2d"는 printf 포맷 문자열에서 사용되는 형식 지정자입니다. 여기서 %는 형식 지정자의 시작을 나타내고, 2는 출력할 정수의 최소 너비를 지정합니다. d는 정수(decimal)를 의미합니다. 따라서 "%2d"는 정수를 최소 2자리로 출력하되, 값이 2자리보다 작으면 앞에 공백을 추가하여 너비를 맞춥니다. 이를 통해 달력의 날짜를 정렬할 수 있습니다. 예를 들어, 1일은 " 1" (앞에 공백이 있습니다.) 로 출력되고, 10일은 "10"으로 출력됩니다. 이렇게 하면 날짜 간의 간격이 일정하게 유지됩니다. 2번째 질문에 대한 답변 : int offsetWeekDays = first.getDayOfWeek().getValue() % 7; 에서 % 7 을 사용하는 이유는 자바의 DayOfWeek 열거형에서 월요일이 1, 화요일이 2, ..., 일요일이 7로 표현되기 때문입니다. 하지만 달력에서는 일요일을 0, 월요일을 1, ..., 토요일을 6으로 표현하는 것이 일반적입니다. 따라서 % 7 을 사용하여 DayOfWeek 값을 달력에서 사용하는 값으로 변환합니다. 예를 들어, 월요일(1)은 1 % 7 = 1 이 되고, 화요일(2)은 2 % 7 = 2 가 됩니다. 그리고 일요일(7)은 7 % 7 = 0 이 되어 달력에서의 표현과 일치하게 됩니다. 만약 % 7 을 뺀다면, offsetWeekDays 값은 월요일이 1, 화요일이 2, ..., 일요일이 7이 될 것입니다. 이 경우에도 first의 날짜를 2024년 1월 10일로 바꾸면 정상 작동할 수 있습니다. 그 이유는 2024년 1월 10일이 수요일이고, 수요일의 getValue() 값은 3이기 때문입니다. 하지만 이렇게 하면 일요일이 0이 아닌 7로 표현되어 달력의 일반적인 표현과는 다를 수 있습니다. 따라서 % 7 을 사용하는 것은 DayOfWeek 값을 달력에서 사용하는 값으로 변환하여 일관성을 유지하기 위한 것입니다. 감사합니다.
- 1
- 1
- 48
질문&답변
2024.04.28
특정 리소스가 없을때에 예외페이지 처리 방법 질문드립니다
안녕하세요. blackjack_96님 웹 애플리케이션에서 리소스가 없는 경우에 적절한 HTTP 상태 코드를 반환하는 것은 중요합니다. 404 에러와 500 에러의 사용 상황 404 에러( NotFound )는 요청된 자원이 서버에 존재하지 않을 때 사용하는 것이 일반적입니다. 예를 들어, 사용자가 /post/158 URL을 요청했을 때 id=158인 게시글이 데이터베이스에서 찾을 수 없으면 404 에러를 반환하는 것이 적절합니다. 500 에러( InternalServerError )는 서버에서 처리할 수 없는 에러가 발생했을 때 사용합니다. 이는 대체로 프로그래밍 오류나 서버 내부의 문제로 발생하는 경우에 해당합니다. 여러분의 경우, id에 해당하는 게시글이 없을 때 404 에러를 반환하는 것이 맞습니다. 이는 사용자가 요청한 리소스가 서버에 존재하지 않음을 명확히 알려주기 때문입니다. 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 복습해주세요 🙂 Spring에서 404 상태 코드를 반환하는 방법 Spring Framework에서는 예외 처리를 위해 @ExceptionHandler 어노테이션을 사용할 수 있습니다. 이를 사용하여 특정 예외에 대해 특정 HTTP 상태 코드를 반환하도록 설정할 수 있습니다. 예를 들어, NoSuchPostException 이 발생했을 때 404 상태 코드를 반환하도록 컨트롤러 내에서 다음과 같이 처리할 수 있습니다: @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(NoSuchPostException.class) public ResponseEntity handleNoSuchPostException(NoSuchPostException ex) { return ResponseEntity.status(HttpStatus.NOT_FOUND).body("The requested post does not exist."); } } @ControllerAdvice 는 전역 예외 처리기로, 애플리케이션의 모든 컨트롤러에서 발생할 수 있는 예외를 처리할 수 있게 합니다. @ExceptionHandler 는 특정 예외를 처리합니다. Spring에서는 BasicErrorController 를 확장하거나 대체하여 사용자 정의 에러 처리 방법을 구현할 수도 있습니다. 그러나 특정 예외 타입에 대해 직접 핸들러를 작성하는 것이 더 직관적이고 간단할 수 있습니다. 위와 같이 @ControllerAdvice 와 @ExceptionHandler 를 사용하는 방법이 일반적으로 권장되는 방식입니다. 감사합니다.
- 0
- 1
- 38
질문&답변
2024.04.28
상속에 따른 객체와 메모리 구조에 대해 질문드립니다.
안녕하세요. vitagi님 생각하는자님께서 잘 답변해주셨는데요. 상속관계의 경우에도 본인 클래스를 알 수 있기 때문에 본인 클래스에 있는 메서드를 사용합니다 🙂 따라서 메서드는 동일하게 1개만 만들어집니다. 감사합니다.
- 0
- 2
- 52
질문&답변
2024.04.28
정적 중첩 클래스 관련 질문
안녕하세요. jung님 중첩 클래스를 사용하는 이유는 강의 내용에서 설명드린 다음 내용과 같습니다 🙂 중첩 클래스는 언제 사용해야 하나? 내부 클래스를 포함한 모든 중첩 클래스는 특정 클래스가 다른 하나의 클래스 안에서만 사용되거나, 둘이 아주 긴밀하게 연결되어 있는 특별한 경우에만 사용해야 한다. 외부의 여러 클래스가 특정 중첩 클래스를 사용한다면 중첩 클래스로 만들면 안된다. 중첩 클래스를 사용하는 이유 *논리적 그룹화* : 특정 클래스가 다른 하나의 클래스 안에서만 사용되는 경우 해당 클래스 안에 포함하는 것이 논리적으로 더 그룹화 된다. 패키지를 열었을 때 다른 곳에서 사용될 필요가 없는 중첩 클래스가 외부에 노출되지 않는 장점도 있다. *캡슐화* : 중첩 클래스는 바깥 클래스의 private 멤버에 접근할 수 있다. 이렇게 해서 둘을 긴밀하게 연결하고 불필요한 public 메서드를 제거할 수 있다. 감사합니다.
- 0
- 1
- 37
질문&답변
2024.04.25
Model 추가 - v3 질문입니다.
안녕하세요. zzzzz님 질문1. 자식 controller를 부모 ModelView에 저장하는 다형성을 뜻하는건가요?ModelView에 .process함수가 없는데 왜 저장하는거에요? controller의 process() 메서드를 호출하면 ModelView라는 객체 인스턴스를 반환합니다. 이 인스턴스를 ModelView mv에 저장합니다. 이 부분에 대한 이해가 어렵다면 자바 로드맵을 통해 자바 기본기를 먼저 다지고 이후에 학습을 이어가는 것을 권장드립니다. 질문2. 아래부분에서 for문(반복문)이 없고 한개의 뷰네임을 저장하면 나머지 2개의 뷰 처리는 어떻게 하는건가요? 아니면 원래 반복문은 없고 요청이 있는 get(requestURI)만 viewName에 저장하는건가요? 요청이 있는 viewName만 저장하게 됩니다. 질문3. 이 부분이 강의에서 각각 파라미터 네임을 계속 꺼내서 저장한다고 하셨는데 반복을 의미하는건가요? 네 맞습니다. 반복을 의미합니다. for-each문으로 이해하시면 충분합니다. 감사합니다.
- 0
- 2
- 62