깊이있는 스물이 되길 🌸
[JS] 엄격 모드(Strict Mode)
JavaScript 2023. 8. 30. 05:59

Strict mode란? 우리는 개발할때 오타나 문법적 실수를 하곤한다. 이 오류를 줄이고 안정적인 코드를 생산하기 위해서는 조금 더 근본적인 접근이 필요하다. 즉, 잠재적 오류를 발생시키기 어려운 개발환경을 만들고 그 환경에서 개발하는것이 조금 더 근본적인 해결책이 아닐까. 예를 들어 아래와 같은 코드가 있다고 하자. 결과값은 어떻게 될까? function foo() { x = 10; } foo(); console.log(x); // ? 함수 내부에서 변수에 값이 할당되었기 때문에 console.log에는 에러가 발생할거라고 예상했을 수도있지만, 할당 된 값 10이 찍혔다. 그 이유는 자바스크립트의 암묵적 전역때문이다. 암묵적 전역 위 코드와 함께 설명하자면, 코드를 동작시켰을때 자바스크립트 엔진은 값..

article thumbnail
[정보 보안] 체육을 잘하면 악성코드를 잘 분석할 수 있다?! (feat. PE)
카테고리 없음 2023. 8. 27. 21:12

아마 제목이 무슨 말인가 싶어서 들어와본 사람들이 많지 않을까 싶습니다. 악성 코드를 분석하기 위해 여러가지 방법을 활용할 수 있는데, 그중 하나가 이 PE라는 녀석입니다. Physical Education? 아니, Portable Excutable이라고 하죠. PE란? 영어 약자를 풀면 PE(Portable Executable) 즉, 말 그대로 옮겨다니면서 실행시킬 수 있는 파일을 뜻합니다. MS에서 다른 운영체제와 이식성을 좋게 하기위해 만든 파일 포맷입니다. 종류 실행, 드라이버, 라이브러리, 오브젝트 총 4개의 계열이 있습니다 실행계열: EXE, SCR 드라이버계열: SYS,VXD 라이브러리 계열: DLL, OCX, CPL, DRV 오브젝트 계열: OBJ PE구조는 파일이 실행되기 위한 모든 정보..

article thumbnail
[AI] Anaconda 설치 및 가상환경 세팅하기
AI 2023. 8. 21. 10:03

Anaconda 3란?Anaconda는 머신러닝이나 데이터 분석 등에 사용되는 여러가지 패키지가 기본적으로 포함된 파이썬 배포판입니다. 파이썬 가상환경 구축에 용이하게 사용되고, 내부적으로 conda라는 환경과 패키지 관리자가 존재합니다. 이 conda를 통해 패키지를 설치하거나 가상환경을 관리할 수 있습니다.Anaconda 가상환경이란?가상환경은 "프로젝트를 위한 격리된 환경을 만드는 것"입니다. Python을 포함하여 대부분의 프로그래밍 언어들은 패키지(또는 모듈)의 버전을 계속해서 최신화하고 있습니다. 버전마다 일부 기능들은 없어지거나 새로 생깁니다. 지금 저에게 필요한 특정 기능이 최신 버전에는 없을 수도 있기 때문에 최신 버전이 무조건 좋은 것은 아닐 수도 있다는 말입니다. 하지만 하나의 환경에..

article thumbnail
[정보보안] ChatGPT를 조심하세요!
정보보안 2023. 8. 17. 14:46

기사 요약 요즘 세상을 뜨겁게 달구고 있는 ChatGPT. 대기업은 사내에서 ChatGPT 사용에 대한 여부를 두고 고민에 빠졌다. ChatGPT특성상 데이터가 입력이 되면 외부 서버에 저장이 된다. 그리고 계속 학습을 해나가기 때문에 잘못했다가 사내의 기밀 정보에 대한 이야기가 흘러 들어갈 수 있다. 예를 들면 ChatGPT에게 기업의 기밀정보를 주고 더 좋은 방안에 대해 이야기 할때 누군가가 그 기업에 기밀정보에 대해 묻는다면 ChatGPT는 스스럼 없이 답을 해주게 된다. LG전자는 ChatGPT 사용에 대해 딱히 제안을 두지 않았다고 하지만 SK하이닉스, 삼성전자는 사용을 금지했다. 더불어 얘기하자면 삼성전자에서는 ChatGPT를 사용한 직원을 해고하기도 했다. 느낀점 ChatGPT 등장 이후 사..

article thumbnail
[정보보안] 내가 접속한 사이트를 의심해봐야 하는 이유
정보보안 2023. 8. 17. 13:56

기사 요약 2달 전 북한에서 네이버 포털 사이트를 실시간으로 복제한 피싱사이트를 만들어 해킹을 시도한 정황이 포착되었다. 북한은 정말 교묘하게 네이버 주소 뒤에 potal을 붙여서 naverpotal.com으로 지정해두었다. 접속해볼까도 싶었지만 해킹당할까 무서워 접속해보진 않았다.(나는 쫄보...)뉴스에 따르면 뉴스, 배너, 검색 탭 부분 모두 다 똑같이 코딩되어있다고 한다. 저렇게 똑같은데 해킹 당할 위험이 뭐가 있겠냐 싶겠지만, 핵심적인 문제는 로그인에 있다. 북한에서는 로그인하면서 넘어오는 사용자 정보를 탈취할 계획이었던 것이다. 놀랍게도 저 사이트에서 로그인도 된다고 한다. 국가정보원(이하 국정원)에서는 개인정보 탈취 가능성을 높이기 위해 해킹 공격 수법을 진화시킨 것이라고 한다. 또 현재 국정..

article thumbnail
모든 프로젝트 관리의 기본, GIT & GitHub 파헤치기
CS 2023. 7. 30. 00:43

개요필자의 동생은 곧 고등학교 입학을 앞두고 있는데, 나와 같은 고등학교에 입학할 예정이다. 학교에서 개발을 배우게 될 예정이긴 하지만, 이제 막 개발을 시작하는 단계이기 때문에 어떠한 베이스 지식도 없다. 그래서 동생에게 가장 공통적으로 많이 쓰이면서도 기본적인 GIT 사용법과 용어들에 대해 알려주기로 했고, 동생 뿐만 아니라 이제 개발을 시작한 분들에게도 조금이나마 도움이 되고자 이 글을 작성하게 되었다. GIT이란?컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다. - 위키백과 여기서 스냅샷 스트립 기반이라는 말을 제외하고 의미를 정리해보면, GIT은 변경사항 즉, 버전을 관리해주는 시스템을 말한다. GIT..

article thumbnail
테스트 코드 작성에 대한 고찰
기타 2023. 7. 23. 21:36

개요요즘 프로젝트를 하면서, 주변사람들에게 이런 말을 듣고는 했다. "그런데, 테스트 코드는 작성 안 하세요?" 혹은 "TDD는 해?" 와 같은 말들. 나는 그동안 프로젝트를 완성하는 것에 초점을 맞추다 보니, 테스트 코드를 크게 염두에 두진 않았다. 그래서 지금 부터라도 소프트웨어 테스트에 대해 알아보고 추후에 프로젝트를 진행할 때 작성해보려고 한다. 소프트웨어 테스트란?소프트웨어 테스트(software testing)는 주요 이해관계자들에게 시험 대상 제품 또는 서비스의 품질에 관한 정보를 제공하는 조사 과정이다. - 위키백과 즉, 소프트웨어가 의도한대로 동작한대로 동작하는지 테스트하는 행위를 일컫는다. 소프트웨어 테스트의 장점옛날에는 사람들이 직접 테스트를 하고 또 테스트를 하는 팀이 별도로 있었지..

article thumbnail
[Next.js] react-qr-reader를 활용해 입소 인증 기능 구현하기
React&Next.js 2023. 7. 16. 15:21

개요지난 포스팅에서 QR코드를 생성하고, 이를 이미지화 하는 작업까지 마쳤다. 그래서 오늘은 이를 활용해 입소 인증기능을 구현해볼 예정이다. 필자는 현재 프로젝트에서 Next.js와 Typescript를 활용해서 진행하고 있다.기능사항 쪼개기우선 내가 구현하고자 하는 기능을 세부사항으로 쪼갰다. 그랬더니, 아래와 같이 4가지 사항들로 정리할 수 있었다. react-qr-reader라이브러리 설치하기qr을 스캔하는 컴포넌트 생성하고, 설정해주기카메라를 통해 QR코드 인식하기결과를 확인하고 통과시키기그럼 이제 시작해보도록하자.react-qr-reader 설치하기npm i react-qr-readeryarn add react-qr-reader npm 혹은 yarn을 활용해 react-qr-reader 라이브러..

article thumbnail
[Python] Base64로 문자열 인코딩해서 QR코드 만들기
카테고리 없음 2023. 6. 30. 11:41

필요성 바로 어제 Node.js로 node-cron을 활용해 주기적으로 문자열을 생성해주었다.(관련 글은 여기 있다.) 그 문자열을 Base64로 인코딩하여 QR이미지를 만들어 친구들이 조작 없이 실시간으로 인증할 수 있도록 만들어야 한다. 도입하기 Python3와 pip 설치는 사전에 준비되어있다는 가정하에 진행된다 폴더 및 파일 생성 우선 폴더 하나를 만들고, 안에 main.py를 생성한다 코드 작성 필요한 모듈을 import한다 # api 요청 import requests # base64 인코딩 import base64 # qr 이미지 생성 import qrcode # 대기 시간 설정 import time 서버가 켜져있는 동안 3초를 주기로 QR이미지를 생성해준다 # 참일 동안 while True:..

article thumbnail
[Node.js] node-cron을 사용해서 일정 시간 마다 특정 작업해주기
JavaScript 2023. 6. 29. 08:39

필요성 현재 구현하고 있는 기숙사 입소 시스템은 입소 인증 방법에 대한 고민이 많았다. 우리 학교에서 입소를 인증한다는 것은, 다른 대학교에서 출석 인증을 하는 것과 다름 없기 때문에 그만큼 상당히 중요하다. 우회나 조작이 불가능해야 하고, 인증 요청자가 자기 자신이라는 것을 증명해야 한다. 그렇다 보니 인증은 보안에 매우 매우 중요하다. 그래서 여러 방법을 시도해보면서 어떤 방법을 쓰는 것이 적합할지에 대해 생각해보던 중 선생님을 통해 cron에 대해 알게되었다. 어떻게 쓸것인가 요즘 대학생들이 출석하는 모습을 본적 있는데, 이렇게 QR코드를 찍어서 앱에서 인증하도록 한다. 교수님께서 QR을 띄우면 학생들이 출석인증을 하는 방식인데, 우리가 그대로 적용하기엔 몇 가지 문제점이 있다. 우리는 사람마다 오..