분류 전체보기 400

4. 프로세스 동기화 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 동기화란? 프로세스 동기화 : 프로세스들 사이의 수행 시기를 맞추는 것프로세스뿐만 아니라 스레드와 같은 실행의 흐름을 갖는 모든 것이 동기화의 대상프로세스들 사이의 수행 시기를 맞추는 것은 무엇을 의미하는가?실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기, 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘동시에 접근해서는 안 되는 자원이란?공유 자원 : 전역 변수, 파일, 입출력장치, 보조기억장치임계 구역 : 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역두 개 이상의 프로세스가 임계 구역에 진입하고자 하면 둘 중 하나는 대기해야 한다. 임계 구역에 먼저 진입한 프로세스의 작업이 마무리되..

OS 2025.02.18

38. 데이터의 변환과 검증(2) - 패스트캠퍼스 백엔드 부트캠프 3기

1. Validator : 객체를 검증하기 위한 인터페이스, 객체 검증기(validator)구현에 사용public interface Validator { // 이 검증기로 검증가능한 객체인지 알려주는 메서드 boolean supports(Class clazz); // 객체를 검증하는 메서드 - target : 검증할 객체, errors:검증시 발생한 에러저장소 void validate(@Nullable Object target, Errors errors);}Errors - BindingResult인터페이스의 부모public class UserValidator implements Validator { @Override public boolean supports(Class c..

Spring 2025.02.17

36. DispatcherServlet - 패스트캠퍼스 백엔드 부트캠프 3기

1. DispatcherServlet이란?관심사의 분리DispatcherServlet과 Controller, registerForm.jsp 사이에 Adapter들이 있는이유?느슨한 결합으로 변경에 유리하기 위해DispatcherServlet 소스 분석 DispatcherServlet.propertiesorg.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver// 테마기능 ThemeResolverorg.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeReso..

Spring 2025.02.17

35. 예외처리/이론 - 패스트캠퍼스 백엔드 부트캠프 3기

1. @ResponseStatus응답 메시지의 상태 코드를 변경할 때 사용예외처리 메서드 앞에서의 @ResponseStatus@ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) // 405 Method Not Allowed.@ExceptionHandler({NullPointerException.class, ClassCastException.class})public String catcher2(Exception ex, Model m) { m.addAttribute("ex", ex); return "error";}error.jsp로 URL요청이 성공하면 200번대의 성공 메시지가 나오는데 이 요청 성공 메시지를 400,500번대로 바꿔주는 역할 사용자 정의 예외 클..

Spring 2025.02.17

5. Strategy - 패스트캠퍼스 백엔드 부트캠프 3기

1. 전략패턴같은 문제를 다른 방법으로 해결하기 쉽게 만들어 주는 패턴2. 예제 enum Handpublic enum Hand { // 가위 바위 보를 나타내는 세 개의 enum 상수 ROCK("바위", 0), SCISSORS("가위", 1), PAPER("보", 2); //enum이 가진 필드 private String name; // 가위 바위 보 손의 이름 private int handvalue; // 가위 바위 보 손의 값 // 손의 값으로 상수를 얻기 위한 배열 private static Hand[] hands = { ROCK, SCISSORS, PAPER }; // 생성자 private Hand(String nam..

디자인 패턴 2025.02.17

33. 세션(session)/실습(3) - 패스트캠퍼스 백엔드 부트캠프 3기

1. URL 보내기BoardController.java@GetMapping("/list")public String boardList1(HttpServletRequest request) throws Exception{ if(!loginCheck(request)){ return "redirect:/login/login?toURL="+request.getRequestURL(); // 로그인을 안했으면 로그인 화면으로 이동 } return "boardList"; // 로그인을 한 상태이면, 게시판 화면으로 이동}loginForm.jsp 로그인을 하지 않은 상태로 Board를 들어가면...URL을 숨겨준다... URL을 로그인창에서 숨기고, 주소창을 통해 받아온다.@PostMappin..

Spring 2025.02.16

32. 콘솔 한글깨짐 오류 고치기 - 패스트캠퍼스 백엔드 부트캠프 3기

1. FilterFilter를 배우는 도중 콘솔창에서 한글이 깨져서 나오는 것을 발견...인터넷에서 3가지 방법을 배워왔다!-Dfile.encoding=UTF-8-Dconsole.encoding=UTF-8이 두줄을 추가해주는 것이었는데 (이걸로는 안됐다)다음!메이븐 클린 빌드도 해봤지만... (소용없었다)Rebuild Project도...마지막으로 Tomcat자체의 VM Option을 건드려보았는데...아까 위에서 VM Option에 추가해준 두줄을 Tomcat VM Option에 추가해보앗다.성공!

Spring 2025.02.15

3. CPU 스케줄링 - 패스트캠퍼스 백엔드 부트캠프 3기

1. CPU 스케줄링운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것왜 하는가? : 컴퓨터 성능과 직결되는 대단히 중요한 문제우선순위 : 운영체제에서 여러 프로세스가 동시에 실행될 때, 시스템 자원을 우선적으로 할당받아 실행되는 프로세스대표적으로 입출력 작업이 많은 프로세스가 있다.입출력 집중 프로세스 : 입출력작업이 많은 프로세스로 실행 상태보다는 입출력을 위한 대기 상태에 더 많이 머무른다.CPU집중 프로세스 : CPU작업이 많은 프로세스로 대기 상태보다는 실행 상태에 더 많이 머무른다.CPU 집중 프로세스와 입출력 집중 프로세스가 모두 동일한 빈도로 CPU를 사용하는 것은 비합리적입출력 작업을 완료하기 전까지는 입출력 집중 프로세스는 어차피 대기 상태가 될 예정이기 때문에 입출력..

OS 2025.02.14