전체 글193 브라우저의 작동방식 브라우저의 기본 구조 사용자 인터페이스 사용자가 접근할 수 있는 영역으로, URI를 입력할 수 있는 주소 표시줄, 이전/다음 버튼, 새로고침 버튼, 북마크 메뉴 등 페이지를 보여주는 창을 제외한 나머지 모든 부분 브라우저 엔진 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어한다. Data Storage를 참조하며 로컬에 데이터를 쓰고 읽으면서 다양한 작업을 한다. 렌더링 엔진 웹 서버로부터 전달받은 자원을 웹 브라우저 상에 나타낸다. 예를 들어, 브라우저가 서버로부터 HTML 문서를 응답 받으면 렌더링 엔진의 HTML 파서와 CSS 파서에 의해 파싱(parsing)되어 DOM, CSSOM 트리로 변환되고 렌더 트리로 결합한다. 리 렌더 트리를 기반으로 브라우저가 웹 페이지를 나타낸다. 각 브라우저마다.. 2023. 8. 23. 23.08.23 오늘의 할 일 - 에러가 발생하면 터미널에서도 확인 할 수 있도록 log.error 남기기 - 에러가 발생했을 때 상태코드를 미리 정한 errorcode와 같이 넘기기 에러가 발생하면 터미널에서도 확인 할 수 있도록 log.error 남기기 위 기능 구현에 대하여 CustomException마다 일일이 log.error를 남기는 굉장히 귀찮은 작업이 될 줄 알았으나 생성자에 직접 log.error를 추가해 작업을 매우 빨리 마칠 수 있었다. 기존 코드 if (!foundBoard.getUser().getId().equals(user.getId()) || !user.getRole().equals(UserRoleEnum.ADMIN)) { log.error("보드를 생성한 사람만 협업자 추방할 수 있습니다.".. 2023. 8. 23. CORS(Cross Origin Resource Sharing) 우선 cross-origin 에 대해 알아야 하는데, cross-origin이란 다음 세 가지 중 하나라도 다른 경우다. 프로토콜 도메인 포트 번호 cors란 보안적인 이유로 브라우저가 cross-origin HTTP 요청들을 제한하는데, 이 요청을 허락하기 위해선 서버에서 동의를 해줘야 한다. 이러한 허락을 구하고 거절하는 메커니즘을 cors라 부른다. 즉, 브라우저에 cross-orign 요청을 안전하게 할 수 있도록 해주는 메커니즘이다. 그렇다면 cross-origin 요청을 제한하는 이유는 무엇일까? 해당 요청을 제한하지 않는다면 모든 곳에서 데이터를 요청할 수 있게 되는데, 그러면 다른 사이트에서 원래 사이트를 흉내낼 수 있게 된다. 그러면 사용자가 로그인한 세션을 탈취할 수 있고, 악의적으로 .. 2023. 8. 22. 프로그램과 프로세스 프로그램이 저장되는 곳 - 보조 기억장치 프로그램이 로딩되는 곳 - 주 기억장치 프로그램을 실행하는 주체 - 프로세스 작업을 처리하는 주체 - 쓰레드 프로세스 생명주기 = 프로세스 상태변화 프로세스 상태 신규 프로세스가 이제 막 메인메모리에 올라온 상태 수용을 거쳐 준비 상태가 되야 실행 가능 준비 변수 초기화와 같은 준비작업을 마쳐 실행이 가능한 상태 스케쥴러를 통해 발송되어야 수행 상태가 됨 신규 상태에서 수용/대기 상태에서 입출력 or 이벤트가 완료/수행 상태가 중단되면 준비 상태가 됨 수행 CPU가 실제로 프로세스를 실행하는 상태 선점 스케쥴링에 의해 중단 > 준비 입출력 or 이벤트가 필요 > 대기 수행 완료 > 종료 대기 프로세스 중에 입출력이 필요해 입출력을 수행하는 상태 CPU는 이때 다른.. 2023. 8. 22. 이전 1 ··· 8 9 10 11 12 13 14 ··· 49 다음