전체 글302 Promise, async, await는 어떻게 이어질까: Chromium으로 이해하는 비동기 실행 프론트엔드에서는 서버의 응답을 기다리고, 데이터를 가공하고, 그 결과를 화면에 반영하는 코드를 자주 작성한다. Promise와 async, await는 이런 흐름을 표현하는 도구다. 먼저 세 가지가 각각 무엇을 의미하고 어떻게 연결되는지 살펴본 뒤, Chromium 안에서 실제로 실행되는 과정을 따라가 보자.Promise는 작업의 성공 결과나 실패 이유를 나타내는 객체다. 서버에 데이터를 요청하는 fetch(url)을 호출하면 응답 데이터 자체가 즉시 반환되는 대신, 응답을 기다릴 수 있는 Promise가 반환된다. 결과를 기다리는 동안에는 pending(대기), 성공 결과가 확정되면 fulfilled(이행), 실패하면 rejected(거부) 상태가 된다. 한 번 fulfilled 또는 rejected가.. 2026. 9. 20. HTML에서 JavaScript를 불러오는 방법과 차이점 웹 페이지에서 JavaScript를 실행하려면 HTML에서 JavaScript 파일을 불러와야 합니다.가장 기본적인 방법은 그런데 src에는 실행할 JavaScript 파일의 경로를 지정합니다.예를 들어 다음과 같은 파일 구조가 있다고 가정해보겠습니다.project/├── index.html└── app.jsindex.html에서 app.js를 불러오려면 다음과 같이 작성할 수 있습니다. Hello JavaScript // app.jsconsole.log("JavaScript 실행");이렇게 하면 HTML이 로드되면서 app.js가 실행됩니다.2. 브라우저가 HTML을 위에서부터 읽다가 이 경우 브라우저가 대부분의 HTML을 먼저 파싱한 다음 JavaScript를 다운로드하고 실행합니다.따라서.. 2026. 9. 13. ‘Discord로 로그인’을 누르면 무슨 일이 일어날까? 웹서비스에서 ‘Discord로 로그인’을 누르면 Discord 화면으로 이동했다가 다시 서비스로 돌아온다. 사용자에게는 짧은 과정이지만, 그 사이 브라우저와 백엔드, Discord가 여러 번 요청을 주고받는다.백엔드는 Discord API로 사용자를 확인하고, 그 계정을 서비스 내부 사용자와 연결한 뒤 로그인 세션을 만든다. 이 흐름을 이해하면 로그인 버튼을 붙이는 일부터 회원가입 처리, 로그인 유지, 로그아웃까지 하나의 과정으로 볼 수 있다.OAuth2는 사용자가 허용한 범위에서 외부 API에 접근할 수 있게 하는 인가 체계다. Discord 로그인에서는 그 권한으로 사용자 정보를 조회하고, 응답의 사용자 ID를 서비스 계정에 연결한다. 이 글은 이 연결 과정과 이후의 세션 처리를 함께 다룬다. [OA.. 2026. 9. 6. LLDB을 이용한 C++ 디버깅 원리 # LLDB를 이용한 C++ 디버깅 원리LLDB는 실행 중인 프로그램의 기계어 실행과 레지스터·메모리 상태를 제어하고, DWARF 디버그 정보를 이용해 이를 C++ 소스 수준으로 해석합니다. DWARF는 기계어 주소와 원래 C/C++ 소스의 의미를 연결하는 표준 디버그 정보 형식입니다.```textC++ 소스 ↓ 컴파일(-g)기계어 + DWARF 디버그 정보 ↓프로세스 실행 ↓LLDB가 운영체제의 디버깅 기능으로 프로세스를 정지·관찰·제어 ↓레지스터와 메모리의 상태를 C++ 변수·타입·호출 스택으로 표시```1. 디버깅을 위한 컴파일 옵션```bashclang++ -g -O0 main.cc -o mainlldb ./main````-g`는 DWARF 디버그 정보를 생성하고, `-O0`.. 2026. 8. 30. 이전 1 2 3 4 ··· 76 다음