어드민 페이지를 개발하다보면, 아래의 상황이 생깁니다. 대시보드와 같은 모니터링 화면에서 실시간으로 데이터가 변경되는 경우 관리자에게 알림을 발송해야하는 경우 위 두가지 경우는 일반적인 Rest API 호출로는 해결할 수 없습니다. 일반적인 Rest API는 클라이언트에서 GET/POST 등의 요청을 보내면 응답이 오는 구조이기 때문입니다. 위 상황에서는…
는 웹페이지에서 얼럿을 발생시킬 때 종종 사용하는 내장 함수입니다. 다만 이 함수는 Main Thread를 Block하기 때문에, 얼럿이 떠있는 동안 뒤의 UI가 멈추는 것이 기본 스펙입니다. Electron에서는 이 동작이 예기치 못한 오류를 일으켜서, alert이 종료된 이후에도 칸에 커서(focus)가 생기지 않아 입력이 되지 않는 문제가 있습니다…
오늘은 회사에서 사용자 이슈를 해결한 사례를 가지고 왔습니다. 프론트엔드 개발자는 일반적으로 인터넷 연결이 되는 클라이언트를 가정하고 개발을 하는 경우가 많기에 특이한 사례라고 생각되어서 공유차 기록하게 되었습니다. 문제 상황 인터넷이 안되는 폐쇄망 환경에서 우리 애플리케이션(으로 만든 데스크톱 앱)을 실행하면 아이콘이 있어야할 자리에 아무것도 보이지 않…
SemVer 형식을 이용해 버저닝을 하더라도, 실제로 배포되기 전까지 동일한 버전하에 여러번 빌드할 일이 생기곤 합니다. 이번 릴리즈(배포) 버전은 이라고 치면, 실제로 배포되기 전에는 계속 동일한 버전으로 개발->QA가 이뤄지게 됩니다. 특히나 QA로 넘어가게 되면 오류 수정 등이 생길 경우 현재 서버에 올라가있는 빌드가 수정된 버전인지 수정하기 전인지…
배경 (약간의 TMI) 자바스크립트에는 꼭 있어야할 것 같은데 없는 함수나 메소드가 종종 있습니다. 대표적으로는, 두 오브젝트가 동일한 지 확인하는 방법입니다. 자바스크립트에서는 두 객체의 내용이 동일하더라도 별도로 선언된 것이라면 다른 객체로 봅니다. 이런 경우에는 프로토타입에서 뭔가 비교할 수 있는 내장 메서드를 제공하는 것이 당연할 것 같지만 그런…
회사 솔루션에서 백오피스 특성상, CSV 가져오기/내보내기를 구현할 일이 있었습니다. 사용자가 본인이 가진 기기의 MAC주소를 등록하는 화면이 있었는데 이때 UI에서는 한개씩만 등록할 수 있게 되어있었기 때문이죠. UI상에서 여러개를 등록할 수 있게 개선할 수도 있지만, 그보다는 엑셀형태(정확히는 CSV)로 관리하는 방식을 관리자들이 선호했기 때문에 대신…
마주친 문제 백오피스 개발을 하다보면 테이블 형태의 UI를 많이 쓰곤 합니다. 이때 컬럼(필드)의 종류가 많거나 아니면 단순히 한 필드의 내용 자체가 길어서 두줄로 넘어가거나, 보기 싫을 정도로 큰 비율을 차지하고 있는 경우가 있습니다. 위 그림에서 보듯, 의 내용이 각 행마다 4줄, 2줄, 1줄로 다르게 나오는 것이 통일감을 해치는 느낌이 있습니다. …
오늘은 저희가 유통하고 있는 F5 솔루션을 사용하고있는 고객사에서 한번 로그인 후에는 방문 시 자동으로 로그인이 되도록 해달라는 요청을 받았습니다. 여러 보안상의 문제가 우려되지만 우선 가능한 방법이 있다면 적용해주는 것으로 내부 결정이 되었습니다. F5 솔루션은 웹커스터마이징이라는 이름으로 자신들의 WebUI에 사용자 정의 스크립트를 붙일 수 있게 해줍…
본 글은 지난 ‘비밀번호를 브라우저 메모리에서 숨기기 (1)‘에서 이어집니다. 지난 문제 요약 사용자가 태그에 비밀번호를 입력하고 나면, 크게 아래 두가지 행위에 의해 메모리에 남게 됩니다. 의 이벤트가 일어나는 경우 (즉, 를 잃는 경우) 자바스크립트 변수에 문자열을 저장하는 경우 두 가지 경우를 어떻게 해결해야 하는지 알아보기 위해 나름 보안이 중…
※ 참고 저는 brave 브라우저를 사용하고 있어서, 작업관리자와 덤프 파일명에 라고 적혀있습니다만 chrome 브라우저를 사용해도 내용은 동일합니다. 문제의 시작 사내 솔루션의 보안 평가를 진행하던 중 지적 사항으로 사용자가 입력한 패스워드가 메모리에 평문으로 남는다는 지적이 있었습니다. 개인적으로는 아직도 잘 이해가 되지 않는 지적입니다. 백엔드 데이…