분류 전체보기 10

FacebookSDK 제한적 로그인에 대한 정리 (with Unity)

Meta (= Facebook) SDK v17 부터 iOS 앱에서 앱 추적을 거절한 상태에서 제한적 로그인을 사용하지 않으면 액세스 토큰을 반환하지 않도록 변경되었다. 메타에서는 이를 제대로 공지했으나,최근까지도 많은 개발자들이 '페이스북 인증이 되지 않는다!' 라는 하소연을 하고 있는 것을 쉽게 발견할 수 있었다. 아무튼 우리 프로젝트도 위와 같은 문제로 고대의 누군가가 구현해둔 페이스북 로그인 기능을 제한적 로그인으로 교체했는데 작업하면서 알게된 (또는 테스트로 밝혀진) 것들에 대해 정리해 보았다. 1) 제한적 로그인을 사용하면 AccessToken 과 그에 관련된 대부분의 정보를 사용할 수 없다. 유니티용 페이스북 SDK 는 페이스북 로그인을 하게 되면 내부적으로 갱신해버리고, 전역으로 선언된 변수..

[TIP] 코딩 테스트를 연습할 때, 파일로 입력을 받기 ( C/C++ )

스켈레톤 코드와 테스트 실행 환경을 쥐어주는 Leet Code 나 프로그래머스와 달리 백준 온라인 저지는 입력부터 출력까지 모든 부분을 작성하고, 제출 전 테스트 또한 본인이 쓰고 있는 IDE 에서 실행해야한다. 아마 나를 포함해서 대부분의 유저들은 실행, 입력 복붙, 출력 확인, 아이고 틀렸네를 반복하고 있을텐데 이를 파일을 통해 간단하게 입력을 받아 테스트 하는 방법이 있었다. 파일 입출력은 매번 실행할 때마다 복붙을 해야하는 번거로움을 없애줄 뿐만 아니라 가끔 종료 조건이 eof 인 문제들도 깔끔하게 테스트 할 수 있다는 장점이 있다. 방법은 정말 간단하므로, IDE 에 한 번 세팅해서 두고두고 써먹으면 된다. 1) (VS 기준) 소스코드와 동일한 위치에 테스트 입력 파일을 추가한다. 2) 실행할 ..

[Build your own git] #5 write-tree 명령어 만들기

이전 연재글더보기[Build your own git] #0 시작[Build your own git] #1 git init 과 .git 폴더의 구조[Build your own git] #2 cat-file 명령어와 Git Object[Build your own git] #3 git hash-object 명령어 만들기[Build your own git] #4 ls-tree 명령어와 tree objects주요 키워드git write-treetree objects 서론지난 글에서 tree objects 에서 파일/디렉터리 이름을 가져오는 ls-tree --name-only  기능을 구현해보았으니 이번엔 tree object 를 생성하는 기능인 write-tree 를 구현해보았다. 이것 또한 hash-object..

[Build your own git] #4 ls-tree 명령어와 tree objects

주요 키워드git ls-treetree objects 서론버전 관리를 위해 git 이 별도로 생성하고 관리하는 파일들을 git objects 라고 한다. git objects 는 목적에 따라 몇 가지 종류가 있는데 cat-file, hash-object 에서 다뤘던 blob object 도 단일 파일을 위한 git objects 의 일종이다. 이번에 다룬 tree objects 는 파일의 디렉터리 구조 (또는 계층구조)를 위한 git objects 이며, 이 파일을 읽고 해당 트리에 소속된 폴더 및 파일의 이름을 알아낼 수 있는 git ls-tree --name-only 를 구현해보았다.  tree objects이전에 다뤘던 blob 은 단일 파일에 대한 오브젝트라 해당 파일의 컨텐츠 정보만 있을뿐 디..

[Build your own git] #3 git hash-object 명령어 만들기

주요 키워드git hash-objectblob objectopensslSHA-1 hash서론지난번엔 이미 만들어진 blob object 를 cat-file -p 을 통해 읽는 기능을 구현해보았으니 이번엔 파일을 blob object 를 생성하는 기능에 대해 알아볼 차례다. 대부분의 개념들은 cat-file 에서 알아봤던 것과 겹치기 때문에 추가로 이해가 필요한 부분은 없었고, 명령어의 동작에 대해서만 조사했다. git 에서는 hash-object 라는 명령어로 원본 파일을 blob object 로 생성하는 기능을 제공한다.git hash-object -w  이 명령어를 호출하면 .git/objects 폴더 안에 해시 앞의 2자리는 폴더, 38자리는 파일 이름인 형태로 blob object 가 생성된다...

[vcpkg] mac os 환경에서 BUILD_FAILED 가 발생할 때

서론맥북에 개발 환경 세팅을 하는 중 뜬금없이 아래와 같은 에러가 발생했다.error: building openssl:arm64-osx failed with: BUILD_FAILED (가능성은 매우 낮지만) 내가 M2를 쓰고 있어서 환경에 맞는 패키지가 없어서 그런가 싶었는데, pkg-config 를 설치하지 않아 라이브러리 빌드에 필요한 정보가 누락되어 발생한 문제였다. 해결 방법home brew 를 쓰고 있다면 아래 한 줄만 입력하면 해결된다.brew install pkg-config 출처https://github.com/microsoft/vcpkg/issues/31312 error: building openssl:arm64-osx failed with: BUILD_FAILED · Issue #313..

[vcpkg] 특정 버전의 패키지를 받고 싶을 때

서론사내 네트워크 환경에서 vcpkg 를 사용하여 특정 프로젝트에 openssl 을 사용하도록  port 를 추가했는데 계속 실패가 발생했다. 외부 환경인 집에서는 별탈 없이 되는 것으로 보아 규칙이 불분명하기로 악명 높은 차단 규칙에 걸린 것 같았다. 혹시 몰라 특정 프로젝트가 아닌 vcpkg 루트에서 받도록 하니 놀랍게도 성공해버렸다. (왜 되는거야?) 뭐가 달랐는지 확인 해보니 다운로드 실패가 발생했던 것은 3.3.0 버전이고, 성공을 했던 것은 3.4.0 버전이었다. 이전에 인프라팀과 이야기했을 때를 떠올려보면 저가의(...) 솔루션을 사용하면서 본인들도 지정하지 않은 영문 모를 사유로 3.3.0 버전이 차단된  것 같다. 같은 환경인데 어째서 특정 프로젝트에서 받을 땐 3.3.0 이고 vcpkg..

[Build your own git] #2 cat-file 명령어와 Git Object

주요 키워드Git ObjectBlobcat-filezlibstd::string_viewstd::istreambuf_iterator 서론두 번째로 진행한 기능은 git cat-file 이다.cat-file 을 이해하기에 앞서 git 이 파일 정보를 어떻게 저장하는지 간략하게 숙지할 필요가 있었다. git은 버전 관리를 위해 파일을 압축된 형식의 blob object 파일로 만들고  key-value 방식으로 관리한다. 여기서 key 는 blob object 파일의 내용을 sha1 알고리즘으로 해싱한 값이다. 이 값을 사용하면 해당 파일의 정보를 빠르게 획득할 수 있다. 이번에 작성한 git cat-file 이라는 명령어는 바로 sha1 해시를 사용하여 해당 키와 연결된 파일의 내용을 읽어들이기 위한 명령어..

[Build your own git] #1 git init 과 .git 폴더의 구조

가장 먼저 구현한 기능은 'git init' 이었다.https://git-scm.com/docs/git-init Git - git-init Documentation-q --quiet Only print error and warning messages; all other output will be suppressed. --bare Create a bare repository. If GIT_DIR environment is not set, it is set to the current working directory. --object-format= Specify the given object (hash algorithmgit-scm.com git init 은 git 에 사용할 로컬 저장소를 만드는 기능으로 특..

[Build your own git] #0 시작

프로그래밍 실력을 어떻게 향상 시킬 수 있을지 고민하던 중 Build your own X 라는 챌린지에 대해 알게 되었다.https://github.com/codecrafters-io/build-your-own-x GitHub - codecrafters-io/build-your-own-x: Master programming by recreating your favorite technologies from scratch.Master programming by recreating your favorite technologies from scratch. - codecrafters-io/build-your-own-xgithub.com Build your own git, Build your own Redis 등 ..