Skip to content

Instantly share code, notes, and snippets.

View philoskim's full-sized avatar

Philos Kim philoskim

  • Seoul, South Korea
View GitHub Profile
@philoskim
philoskim / how-to-load-csv-without-data-loss-in-excel.adoc
Created September 4, 2025 00:40
Excel์—์„œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋กœ ์ž˜๋ชป ์ฝ์–ด๋“ค์ด๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ

Excel์—์„œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋กœ ์ž˜๋ชป ์ฝ์–ด๋“ค์ด๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ

  • csv ํŒŒ์ผ์„ Excel ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ฝ์–ด ๋“ค์ผ ๋•Œ, ํŠน์ • ์นผ๋Ÿผ์˜ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋กœ ์ž˜๋ชป ์ฝ์–ด๋“ค์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฐ ํ˜„์ƒ์„ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•œ๋‹ค.

  • ์ฐธ๊ณ ๋กœ ๋‹ค์Œ์— ์†Œ๊ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์€, Microsoft 365 online 2025๋…„ version์„ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰ํ–ˆ๋‹ค.

    1. Excel ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค.

    2. ์ด ์ƒํƒœ์—์„œ .csv ํŒŒ์ผ์„ ์ง์ ‘ ์—ด์ง€ ์•Š๊ณ , ๋ฉ”๋‰ด ์ƒ์˜ [๋ฐ์ดํ„ฐ > ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ(ํŒŒ์›Œ ์ฟผ๋ฆฌ)]๋ฅผ ์„ ํƒํ•œ๋‹ค.

    3. [๋ฐ์ดํ„ฐ ์›๋ณธ ์„ ํƒ] ํ™”๋ฉด์—์„œ [ํ…์ŠคํŠธ/CSV] ํ•ญ๋ชฉ์„ ์„ ํƒํ•œ๋‹ค.

@philoskim
philoskim / gist:848373784728e79e606bb75f95b2bcb1
Created September 3, 2025 08:10
Excel์—์„œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋กœ ์˜ค์ธํ•˜๋Š” ํ˜„์ƒ ๋ฐฉ์ง€ํ•˜๊ธฐ
= Excel์—์„œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋กœ ์˜ค์ธํ•˜๋Š” ํ˜„์ƒ ๋ฐฉ์ง€ํ•˜๊ธฐ
* csv ํŒŒ์ผ์„ Excel ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ฝ์–ด ๋“ค์ผ ๋•Œ, ํŠน์ • ์นผ๋Ÿผ์˜ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋กœ
์ž˜๋ชป ์ฝ์–ด๋“ค์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฐ ํ˜„์ƒ์„ ๊ทผ๋ณธ์ ์œผ๋กœ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•œ๋‹ค.
* ์ฐธ๊ณ ๋กœ ๋‹ค์Œ์— ์†Œ๊ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์€, ``Microsoft 365 online 2025๋…„ version``์„ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰ํ–ˆ๋‹ค.
. Excel ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค.
. ์ด ์ƒํƒœ์—์„œ .csv ํŒŒ์ผ์„ ์ง์ ‘ ์—ด์ง€ ์•Š๊ณ , ๋ฉ”๋‰ด ์ƒ์˜ ``[๋ฐ์ดํ„ฐ > ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ(ํŒŒ์›Œ ์ฟผ๋ฆฌ)]``๋ฅผ ์„ ํƒํ•œ๋‹ค.
. `[๋ฐ์ดํ„ฐ ์›๋ณธ ์„ ํƒ]` ํ™”๋ฉด์—์„œ `[ํ…์ŠคํŠธ/CSV]` ํ•ญ๋ชฉ์„ ์„ ํƒํ•œ๋‹ค.
@philoskim
philoskim / vscode-on-ubuntu.adoc
Last active January 25, 2026 01:21
Ubuntu์—์„œ Visual Studio Code ํ•œ๊ธ€ ์ž…๋ ฅ ์•ˆ๋˜๋Š” ํ˜„์ƒ ํ•ด๊ฒฐ๋ฒ•

Ubuntu์—์„œ Visual Studio Code ํ•œ๊ธ€ ์ž…๋ ฅ ์•ˆ๋˜๋Š” ํ˜„์ƒ ํ•ด๊ฒฐ๋ฒ•

Ubuntu 19.10์—์„œ Visual Studio Code ์‚ฌ์šฉ ์ค‘ ํ•œ์˜ ์ „ํ™˜ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ํ•œ๊ธ€์„ ์ž…๋ ฅํ•˜๋ ค ํ–ˆ๋”๋‹ˆ, ํ•œ๊ธ€ ์ž…๋ ฅ์ด ์•ˆ๋˜๊ณ  ์˜์–ด๋งŒ ๊ณ„์† ์ž…๋ ฅ๋˜๋Š” ํ˜„์ƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ธํ„ฐ๋„ท์„ ๊ฒ€์ƒ‰ํ•ด ๋ดค๋”๋‹ˆ snap ํ˜•์‹์˜ Visual Studio Code๋ฅผ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ์—, Ubuntu์˜ ์ž…๋ ฅ๊ธฐ์ธ IBus์™€ ์ถฉ๋Œํ•ด์„œ ์ผ์–ด๋‚˜๋Š” ํ˜„์ƒ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ .deb ํ˜•์‹์˜ Visual Studio Code๋ฅผ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์–ด, ์„ค์น˜ํ•ด ๋ดค๋”๋‹ˆ ํ•œ๊ธ€ ์ž…๋ ฅ์ด ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ด ํ•ด๊ฒฐ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•œ๋‹ค.

  • ๋จผ์ € ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š” snap ํ˜•์‹์˜ Visual Studio Code๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

Clojure and ClojureScript QnA

1. Macros in ClojureScript

1.1. Question

Clojure, ClojureScript ๋งคํฌ๋กœ ๋™์ž‘์ด ์„œ๋กœ ๋‹ค๋ฅธ๊ฐ€์š”?

"Clojure Programming" ์— ๋‚˜์˜จ ์˜ˆ์ œ

@philoskim
philoskim / clojure-transducer-test.adoc
Last active December 24, 2018 02:49
Clojure Transducer Test

Clojure Transducer Test

transducer๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ my-filter, my-map, my-conj๋Š” ๊ฐ๊ฐ clojure.core์˜ filter, map, conj ํ•จ์ˆ˜์˜ ๋‚ด์šฉ ์ผ๋ถ€๋ฅผ ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์•ฝ๊ฐ„ ๊ธธ๊ธฐ๋Š” ํ•ฉ๋‹ˆ๋‹ค๋งŒ, ์ฐฌ์ฐฌํžˆ ์ฝ์–ด ๋ณด๋ฉด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ์ฝ”๋“œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

Tip
์ฐธ๊ณ ๋กœ, ์•„๋ž˜์—์„œ outer-fn-in-์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋Š” transducer์ด๊ณ , inner-fn-in-์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋Š” reducing function์ž…๋‹ˆ๋‹ค. Clojure์—์„œ๋Š” ๋ฌด๋ช… ํ•จ์ˆ˜์—๋„ ์ด์™€๊ฐ™์ด ์ด๋ฆ„์„ ๋ถ™์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ๋””๋ฒ„๊น…ํ•  ๋•Œ ์š”๊ธดํ•ฉ๋‹ˆ๋‹ค.
@philoskim
philoskim / clojure-blog.adoc
Last active November 1, 2018 04:15
Clojure blog

Clojure Blog

1. reify์˜ ๋ฐœ์Œ

Clojure์— reify๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์ด ๋‹จ์–ด๋Š” '๊ตฌ์ฒดํ™” ์‹œํ‚ค๋‹ค', '์‹ค์ฒดํ™”ํ•˜๋‹คโ€™๋ผ๋Š” ์˜๋ฏธ์ธ๋ฐ, ๋ฌธ์ œ๋Š” ์ด ๋‹จ์–ด๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐœ์Œํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์˜์™ธ๋กœ ๋“œ๋ฌผ๋‹ค๋Š”๋ฐ ์žˆ๋‹ค. ์ด ๋‹จ์–ด์˜ ์ •ํ™•ํ•œ ๋ฐœ์Œ์€ [rรญ:ษ™fร i] (๋ฆฌ์–ดํŒŒ์ด) ์ด๋‹ค. ์ด ๋‹จ์–ด์˜ ์–ด์›์„ ์•Œ๋ฉด ์ •ํ™•ํ•œ ๋ฐœ์Œ์„ ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋ฏ€๋กœ, ๋‹ค์Œ์— ์–ด์›์„ ํ•จ๊ป˜ ์†Œ๊ฐœํ•œ๋‹ค.

@philoskim
philoskim / macro-debugging-in-clojurescript.adoc
Last active September 20, 2018 02:03
Macro debugging in ClojureScript
@philoskim
philoskim / how-to-alias-clojurescript-namespace-in-macros.adoc
Last active July 9, 2018 12:33
How to alias the ClojureScript namespaces in macros

How to alias the ClojureScript namespaces in macros

Problem

I wanted to alias a ClojureScript namespace in macros like this.

;; qna/very_very_long_namespace.cljs
@philoskim
philoskim / state-management.adoc
Last active May 8, 2018 01:50
Game state management by using nested refs in Clojure

Game state management by using nested refs in Clojure

(defn- ->vec [k]
  (if (vector? k) k [k]))

(defmacro get-in* [r ks]
@philoskim
philoskim / cljs-ns.adoc
Last active May 4, 2018 08:49
How to get *ns* string in ClojureScript

How to get *ns* string in ClojureScript

Itโ€™s not so easy to get *ns* string in ClojureScript as you might expect but here is a tip.

It is impossible to get *ns* string at run-time in ClojureScript (except in self-hosted ClojureScript) but it can be accessed at compile-time only. So you have to use a macro to get it as the following example.

I came up with this idea in the course of implementing set-ns-blacklist! and set-ns-whitelist! (https://github.com/philoskim/debux#debux-config) in my debux library.