프론트엔드

2024.12.27

zayn 2024. 12. 27. 20:03

Trouble Shooting

 

< 다크모드 관련>

 

Q. 다크 모드를 적용 했을떄, 왜 헤더에 있는 글씨가 안보이는 걸까? 백그라운드 비디오는 왜 어두워지는거지?

 

→header와 Background에 {theme use} 사용해보기

→ 수정중에 또 다른 에러 발생

 

Q. 맥시멈 콜? 왜 yarn dev가 안될까?

 

에러코드 : ⨯ RangeError: Maximum call stack size exceeded at Object.hasOwnProperty (<anonymous>) digest: "2662428016" GET / 500 in 2033ms

 

여기서 잠깐 500 Error 란?

보통 위와 같은 화면을 보여주면서 원하는 문서로 넘어가지 않는 현상.

사이트 자체의 에러로 원인은 다음과 같다.
  1. 서버 사용량의 폭주로 인해 서비스가 일시적으로 중단된 것 또는 서버의 이상에 의한 문제.
  2. 서버 스크립트의 오류.

해당 홈페이지의 서버에 관리에 문제가 있어 생긴 것이니 개개인의 컴퓨터엔 문제가 없는 것으로 등장하는 500에러는 본진 서버의 이상이라고 보는 편이 옳다. 서버 데몬 에드온 중에 이런 게 있는데, 사용자 컴퓨터는 500에러 발생시 Retry-After를 받으면 또 시도하기 때문에 아예 이 코드를 빼고 너는 보내라 나는 씹는다 라고 해주는 데몬이 있다.

다만 위의 1, 2번 구분은 의미가 없다. 어쨌든 웹서버가 500 에러를 전송했다는 것은 웹서버 자체의 사용량은 남았는데 DB 등 다른 시스템이 초과되었다는 의미다. 결국은 서버 스크립트 상에서 DB 접속에 실패하여 오류가 난 것일 확률이 매우 높은데, 이 경우 1번과 2번 모두에 해당한다. 이상적인 경우는 가용량을 넘어 폭주하는 경우 DB가 접속 가능한지 미리 확인하는 코드를 추가하거나 접속초과 오류만 특별히 컨트롤 해서 오류페이지 대신 '접속량 초과' 같은 메시지를 보내주는 게 옳다.

결국 1번이든 2번이든 오류메시지는 사용자에게 보여주지 않는 것이 가장 이상적인 상황이다. 하지만 현실적으로는 어렵다. 언제나 말은 쉽다 다만 개발자가 신이 아닌 이상 실수는 할 수 있지만 저런 오류가 사용자에게 노출되지 않도록 최대한 노력해야 하는 것은 맞다. 별로 중요한 정보는 아닐지라도 서버의 정보가 사용자에게 노출되는 것은 절대 좋은 일은 아니기 때문이다. 예를 들어 두번째 그림에 있는 오류를 보면 오류가 발생한 코드의 클래스 이름, 함수 이름 등이 다 노출되고 있다. 이를 미루어 어떤 라이브러리가 사용되었는지부터 언어가 java라는 것, 서버가 tomcat이라는 것까지 전부 노출되고 있는데 그 말은 이미 알려진 해당 라이브러리, 언어, 웹서버의 보안 취약점을 공격받을 수 있다는 것이다. 다만 저렇게 세세한 건 루프백이나 로컬 네트워크에서 접속했을때만 뜨는 것이 일반적이다.

 

Nav.tsx에서

<li><DarkMode></li> → <li> {/* <DarkMode /> */}</li>

: 다크모드 해제

→ 바로 성공!

→ 해지면 안되길래 진짜 찐 다크모드인줄 알았지 뭐야..

 

 

....아직도 어렵고 어려운 코드의 세계

내 로직 자체는 어려운 부분이 없는데 왜 안되나 하루종일 저거에 막혔고

어제도 막혀서 4일치 쓴 코드를 통으로 날렸다.

 

주말내내 코드만 써야할지도 모르지만

애기를 키우고 있는 입장에서 가능할까 싶기도 한 상황인데

월요일까지 제출 가능할까?

'프론트엔드' 카테고리의 다른 글

DoGo PJ _ 002  (0) 2025.01.02
Trouble Shooting  (0) 2024.12.30
2024.12.26  (0) 2024.12.26
2024.12.24  (2) 2024.12.24
가보자고 나혼자프젝  (0) 2024.12.23