| Term/Expression | Definition | Simpler Paraphrase | Meaning |
|---|---|---|---|
| Calm down | To become less agitated or upset | Relax | 진정되다, 가라앉다 |
| Cool off | To become less hot or angry | Chill out | 진정해지다, 차분해지다 |
| Chill out | To relax completely | Take it easy | 화를 누그러뜨리다, 열을 식히다, 긴장을 풀다 |
| Cool down | To lower temperature or become less angry | Calm down | 화를 누그러뜨리다 |
| Settle down | To become calm or to establish a stable life | Get comfortable | 진정하다 |
| Simmer down | To calm down gradually | Relax slowly | 흥분을 가라앉히다 |
| Take it easy | To relax and not stress | Chill out | 진정하다 |
현대자동차에 합류하기 전, 인사팀에서는 진급이 거의 확정적인 것처럼 이야기했었다. 하지만 막상 들어와 보니 실상은 많이 달랐다. 나름 열심히 했다고 생각했지만, 작년 첫 고과에서 나는 1월 입사자라는 이유로 평가 대상에서 제외되었고 그 때문에 리스트에도 오르지 못한 것이 아닐까 싶다.
규칙이라면 따라야겠지만, 인사와 내부 사정이 다른 것에 실망스러웠다. 비슷한 연차의 동료들 역시 각자 나름의 불만을 안고 출발했던 것 같다. 바꿀 수 없는 것보다는 바꿀 수 있는 것에 집중하자는 생각으로, 나는 다른 일들에 더 많은 시간을 쓰게 되었다.
1분기는 목표가 사라진 채로 거의 의욕 없이 흘려보냈다. 그 전까지는 대학원 시험을 잘 치르는 것이 가장 큰 목표였는데, 결과 발표가 계속 미뤄지면서 마음이 더 힘들어졌다. 여러 번 연기되었던 결과는 4월 초에야 나왔고, 낙방이었다. GPA인지, 시험 결과인지, SOP인지, 영어 성적인지 무엇이 부족했는지 궁금해 문의했지만 구체적인 답을 듣지는 못했다. 대신 아래와 같은 답변을 받을 수 있었다.
We regret to inform you that your application in this admission cycle was not successful. Please understand that admission into the Master of Science in Machine Learning is very competitive and takes into account a large number of criteria. Due to restrictions on the number of places, we unfortunately have to decline a large number of strong applications. Although this final decision may be disappointing, we are confident that, given your credentials, many other opportunities will open up for you.
"Strong applications"라는 표현에 그나마 위안을 얻었던 것 같다. 하지만 다시 같은 꿈을 꾸기에는 아이엘츠 성적 만료가 코앞이었고, 재도전은 현실적으로 어려워 보였다. 한정된 시간 안에서 무엇을 해야 할지 고민하던 중, 예전부터 와이프가 추천해주던 박람회가 떠올랐다.
코엑스에서 주기적으로 열리는 유학·해외취업·이민 박람회를 알게 되었고, 별다른 기대 없이 무작정 찾아갔다. 영국 석사는 1.5년 코스였지만, 아이엘츠의 영국 전용 버전이 신설되면서 기존 성적을 사용할 수 없었다. 그 대안으로 호주가 눈에 들어왔다. 아랍에미리트의 다른 대학원도 가능성은 있었지만, 예전부터 시드니에서 살아보고 싶다고 말하던 와이프의 영향으로 호주 대학원을 목표로 삼게 되었다.
박람회에서 만난 유학원은 생각보다 체계적이지 않았고, 진행 과정도 만족스럽지는 않았다. 그럼에도 불구하고 인공지능으로 급변하는 소프트웨어 엔지니어 정의와 미래를 대비해야 한다는 생각, 그리고 물리 AI 시대가 오기 전에 관련 기업으로 이직하거나 연구로 방향을 틀어야 한다는 판단은 분명했다. 그렇게 인공지능 석사를 목표로 상담을 이어갔다. 아이엘츠 성적도 있었고, 자금도, 경력도, 의지도 갖추고 있었기에 과정은 비교적 빠르게 진행되었다. 그 무렵 퇴사 의사를 밝혔고, 멋진 동료들로부터 불확실한 앞길에 대한 따뜻한 덕담을 받을 수 있었다는 점이 참 감사했다.
집을 팔고, 가진 것들을 정리한 뒤, 캐리어 두 개만 들고 7월 13일 호주에 도착했다. 예상보다 훨씬 쌀쌀했던 호주의 겨울에 적응하는 일은 쉽지 않았다. 한국에서는 영어를 꽤 한다고 생각했지만, 내가 익숙했던 것은 정제된 영어였다는 걸 곧 깨달았다. 현지인들의 영어와 영어를 세컨드 랭기지로 사용하는 친구들의 영어는 완전히 달랐다.
게다가 한국어로도 아카데믹 레포트에 익숙하지 않은 상태에서, 짧은 시간 안에 영어 레퍼런스를 포함한 IMRD 포맷의 리포트를 작성하는 일은 정말 버거웠다. "이만큼 돈을 쓰는데 석사 학위쯤은 그냥 살 수 있는 거 아니야?"라고 생각했던 과거의 내가 부끄러워졌다. ChatGPT조차 없던 시절에 해외 석박을 마친 선배님들이 새삼 대단하게 느껴졌다. 몇몇 뛰어난 20대 글로벌 인재들을 보며, 그들의 10년 뒤 모습이 궁금해지기도 했다.
수업과 과제, 시험에 적응해 가는 시간 속에서, 와이프가 잠깐씩 지구 반대편으로 와줄 때마다 마음의 여유를 얻을 수 있었다. 그렇게 New South Wales 주에서의 혼인신고까지 마무리하며, 1학기를 High Distinction으로 잘 끝낼 수 있었다. 마지막 달에는 멋진 슈퍼바이저 밑에서 재미있는 연구를 같이할 기회도 얻었다. 시간이 날 때마다 해보고 싶었던 코드 템플릿화와 프롬프트화 역시 그 마지막 달에 시도해볼 수 있었다.
내년에는 어떤 회고를 쓰게 될까. 벌써부터 기대가 된다.
]]>shadcn/ui(Vaul)를 사용하여 모바일 웹을 개발하던 중, iOS Safari에서 Drawer 내부의 Dialog를 호출할 때 발생하는 스크롤 충돌 버그를 해결했다.
모바일 뷰에서 '더보기' Drawer를 열고 내부 메뉴를 클릭하여 '공유하기' Dialog를 띄우는 기능이었다.
onClose나 클릭 핸들러에서 즉시 Dialog를 띄우지 않고, onAnimationEnd 이벤트를 활용하여 Drawer의 정리가 완전히 끝난 후 Dialog를 호출해야 한다.
<Drawer
onAnimationEnd={(open) => {
// Drawer가 완전히 닫힌 후(!open) 실행
if (!open) {
setDialogOpen(true);
}
}}
>
Vaul 컴포넌트에 다음 옵션을 추가하여 Safari의 불완전한 스타일 재계산을 방지한다.
<Drawer
disablePreventScroll={true}
repositionInputs={false}
shouldScaleBackground={false}
>
disablePreventScroll={true}
repositionInputs={false}
shouldScaleBackground={false}
이 옵션들은 완전한 해결책이라기보다는 iOS Safari 환경에서의 리스크를 줄이기 위한 방어설정에 가깝긴하다.
OPENQASM 2.0; // 언어 버전 선언
qreg q[1]; // 큐비트 레지스터 q를 선언 (큐비트 1개, 초기 상태 |0⟩)
creg c[1]; // 고전 비트 레지스터 c를 선언 (측정 결과 저장용)
h q[0]; // Hadamard 게이트 적용: |0⟩ → (|0⟩ + |1⟩) / √2
measure q[0] -> c[0]; // q[0]을 측정하고 결과(0 또는 1)를 c[0]에 저장
OPENQASM 2.0;
qreg q[10]; // ∣0000000000⟩
creg c[10];
// x 게이트를 사용하여 처음 세 큐비트를 ∣1⟩ 상태로 변경
x q[0]; ∣1000000000⟩
x q[1]; ∣1100000000⟩
x q[2]; ∣1110000000⟩
measure q[0] -> c[0]; // 1
measure q[1] -> c[1]; // 1
measure q[2] -> c[2]; // 1
psi_dagger = psi.conjugate().T
psi_dagger = psi.conjugate().transpose()
psi_dagger = psi.H
A_dagger = A.H
AA_dagger = A * A_dagger
# (AA†)†=AA†?
is_hermitian = AA_dagger.is_hermitian
U = Matrix([
[cos(theta), sin(theta)],
[-sin(theta), cos(theta)]
])
U_dagger = U.H
U_dagger_U = trigsimp(U_dagger * U)
is_unitary = U_dagger_U == I

\texttip{}: Displays a tooltip when hovering over the equation.\toggle{}: Toggles between two expressions.\begin{align}: Aligns equations, where the ampersand (&) marks the alignment points.\bbox[color, padding]{}: Puts a bounding box with the specified color and padding around an expression.\boldsymbol{}: Renders a bold version of symbols like variables.\cancel{}: Strikes through an expression.\cancelto{value}{}: Strikes through and labels with the specified value.\begin{cases}: Creates a piecewise function with conditions.\color{}: Applies a color to text or math expressions. You can use predefined colors or hex values.\enclose{}: Encloses an expression with various effects like circles or strikes.[mathcolor="color", mathbackground="color"]: Adds custom colors to the enclosing effect.\xmapsto{}: Creates an arrow with a label for mapping.\xlongequal{}: Creates a long equals sign with a label.\ce{}: Renders chemical equations or formulas.\newcommand{\ket}[1]{\left|#1\right\rangle}: defines a custom command for ket notation. \ket{\psi}\tag{}: Assigns a custom tag to an equation.\unicode{}: Inserts a Unicode character using its code.AI 시대에 개발자는 어떻게 살아남아야 할까? LLM의 코드 퀄리티는 이미 나보다 탁월하고, 더 빠른 속도로 코드를 찍어낸다. 이런 상황에서 나는 무엇을 해야 할까? 5년 안에 대부분의 개발자가 대체될 것이라는 두려움 속에서, 나는 지금 무엇을 배워야 할까?
ChatGPT 이후의 모델들을 사용하며 느낀 점은, 결국 내가 문제를 어떻게 분해하고, 어떤 데이터를 먹이로 주느냐(feed)가 결과물의 퀄리티를 결정한다는 것이다. 예를 들면, 시니어 개발자가 AI를 활용해 더 뛰어난 아웃풋을 낼 수 있는 이유는 좋은 코드와 아키텍처를 수없이 봐왔고, 개념을 피부로 느껴왔으며, 협업과 실무 경험을 통해 축적된 노하우가 있기 때문이다. 즉, 모델에 입력할 수 있는 키워드와 컨텍스트의 크기가 다르다는 뜻이다.
어디서 좋은 코드와 아키텍처를 배울 수 있을까? 소프트웨어 엔지니어링의 정수는 오픈소스에 있기에, 그곳에서 답을 찾을 수 있을 것이다.
나는 매주 Github 인기 레파지토리를 30분씩 훑어보는(Skim reading) 루틴을 가지고 있다. 관심 가는 프로젝트는 스타를 눌러 북마크 해두고, 폴더 구조와 사용된 패키지, 그리고 그 구현체를 뜯어본다. 해당 소스에서 참신함이 느껴진다면, 포크해서 LLM을 통해 개괄하고, 핵심 기능을 찾아 바닥부터 직접 만들어 보기도 한다.
나보다 더 많은 시간을 쏟고, 해당 문제에 대해 더 깊이 고민했을 오픈소스 컨트리뷰터들의 방법론을 내 것으로 만드는 것. 그것이 AI-native 시대에 대체되지 않는 개발자가 되는 빠른 길 중 하나일 것이다.
그렇다면 AI 시대의 개발자의 역할은 한마디로 무엇일까? 나는 생성적 적대 신경망(GAN)에서의 Discriminator, 즉 판별자의 역할이라고 생각한다.
AI 모델이 쏟아내는 코드와 아키텍처가 논리적으로 맞는지, 효율적인지, 혹은 더 나은 방법은 없는지를 판단하는 능력. 그리고 그 판단에 맞춰 프롬프트를 조정하고, AI에게 피드백을 주어 결과물을 개선해 나가는 능력. 이것이 개발자가 가져야 할 핵심 역량이다.
가트너는 이러한 개발 방식을 AI-native Software Engineering이라고 정의한다 (Khandabattu & Tamersoy, 2025). 단순 코딩은 AI에게 위임하고, 개발자는 더 본질적인 과업(Meaningful tasks)에 집중해야 한다는 것이다. 기계적인 구현에서 벗어나 비판적 사고(Critical thinking), 인간 고유의 독창성(Ingenuity), 그리고 사용자를 향한 공감(Empathy) 같은 영역 말이다. 결국 우리가 판별자가 되어야 하는 이유는, 인간만이 할 수 있는 이 고유한 가치를 지키고 확장하기 위함이다.
다른 한편으론, 리누스 토발즈의 말처럼 지금의 AI 하이프(Hype)의 90%는 마케팅이고 10%만이 진짜일 것이다 (TFiR, 2024, 37:59). 그 10%를 가려내기 위해서는 이론을 더 깊게 파고들어야 한다. 그리고 나서 이론이 어떻게 엔지니어링을 통해 구현되는지를 경험해보면 판별할 수 있는 눈이 생길 것이다.
프레임워크나 라이브러리는 금방 변한다. 하지만 그 기저에 있는 개념들은 바뀌지 않는다. 왜냐하면 모든 프로그래밍은 결국 자료구조와 분할 정복으로 귀결되기 때문이다. AI는 단지 그 추상화된 레이어를 한 단계 더 높여줄 뿐이다.
다수는 AI 시대에 학위가 필요 없어질 것이라 말하지만, 나는 다르게 생각한다. 정말로 그 개념을 제대로 알고 있는지가 중요해지는 만큼, 학위나 자격증처럼 기초 지식을 증명하는 수단이 오히려 더 중요해질 것이다.
공학이 중요하다. 다른 모든 것은 그 개념의 implementation일 뿐이다.

The distribution captured by the model is decomposed using the chain rule and a conditional independence assumption:
The model employs a hybrid approach to balance training efficiency with inference speed and quality.
The model minimizes a combined objective:
The training is split into two distinct stages based on the parameter and the inclusion of the Action Expert.
Modeling tabular data poses unique challenges for GANs, which existing statistical and deep neural network models fail to address properly:
To address these challenges, the authors propose CTGAN, which introduces Mode-specific Normalization, a Conditional Generator, and a Training-by-Sampling strategy.
Challenge: Representing continuous values with arbitrary, non-Gaussian distributions is non-trivial. Simple Min-Max normalization to [-1, 1] fails on multimodal data.
Solution: Treat each continuous column independently using a Variational Gaussian Mixture Model (VGM).
Estimate the number of modes and fit a Gaussian mixture.
Represent each value as a concatenation of:
Conditional Vector: defined as .
Generator Loss: Penalize the generator if it fails to produce the requested condition. This is done by adding the cross-entropy between the input mask and the generated output to the loss.
Training-by-Sampling (Curriculum):

Generator Flow:
h0 = z ⊕ cond
h1 = h0 ⊕ ReLU(BN(FC_256(h0)))
h2 = h1 ⊕ ReLU(BN(FC_256(h1)))
α_hat = tanh(FC(h2)) # Continuous scalar
β_hat = gumbel_0.2(FC(h2)) # Continuous mode (one-hot)
d_hat = gumbel_0.2(FC(h2)) # Discrete value (one-hot)
Critic Flow:
h0 = r1 ⊕ ... ⊕ r10 ⊕ cond1 ⊕ ... ⊕ cond10
h1 = drop(leaky_0.2(FC_256(h0)))
h2 = drop(leaky_0.2(FC_256(h1)))
Score = FC_1(h2)
The authors also propose TVAE as a robust baseline for comparison.
Likelihood Fitness (Simulated Data):
Machine Learning Efficacy (Real Data):
| Term/Expression | Definition | Simpler Paraphrase | Meaning |
|---|---|---|---|
| proliferation | the rapid increase or spread of something | rapid increase | 확산, 급증 |
| necesitate | to make something necessary or unavoidable | to require | 필요하게 하다 |
| efficacy | the ability to produce a desired or intended result | effectiveness | 효능, 효과 |
| densitify | to make something denser or more concentrated | to compact | 밀도 높이다 |
| reminiscent | tending to remind one of something | suggestive | 연상시키는 |
| discriminatory | showing prejudice or bias against certain groups or individuals | biased | 차별적인 |
| exacerbated | made worse or more severe | worsened | 악화된 |
| devise | to plan or invent something by careful thought | to invent | 고안하다 |
| analogously | in a way that is similar or comparable to something else | similarly | 유사하게 |
| firsthand | obtained directly from personal experience | direct experience | 직접적인 경험 |
| plausible | seeming reasonable or probable | believable | 그럴듯한 |
| off-the-shelf | readily available for use without modification | ready-made | 기성품의 |
| granularity | the quality of being detailed or specific | detail level | 세분성 |
| holonomic base | a system in which all constraints can be expressed as functions of the coordinates and time | fully constrained system | 전체 구속 시스템 |
| denoising | the process of removing noise from a signal or data | noise reduction | 잡음 제거 |
| audacious | showing a willingness to take bold risks | bold | 대담한 |
| dimensionality | the number of independent parameters or coordinates needed to specify a point in a space | number of dimensions | 차원 수 |
| lowntirelyr-dimensional | relating to or denoting a space of low dimensions | low-dimensional | 저차원의 |
| jointly | together; in combination | together | 함께, 공동으로 |
| in-the-wild | occurring in natural, uncontrolled environments | natural setting | 자연 환경에서 |
| novelty | the quality of being new, original, or unusual | newness | 새로움, 참신함 |
| palpitate | to beat rapidly or strongly | to throb | 두근거리다 |
| prohibitively | in a way that is too expensive or too much | excessively | 엄두를 못낼 만큼, 엄청나게 |
| ablate | to remove or destroy something by melting, vaporizing, or eroding | to remove | 제거하다 |
| occlude | to block or obstruct something | to block | 가리다, 막다 |
| Term/Expression | Definition | Simpler Paraphrase | Meaning |
|---|---|---|---|
| contamination | the process of making something impure or unsuitable by contact with something unclean | impurity | 오염 |
| insulation | the process of protecting something by surrounding it with a material that reduces or prevents the transmission of heat, sound, or electricity | protective covering | 절연 |
| compound | a substance formed from two or more elements chemically bonded together | mixture | 화합물 |
| uniformity | the quality of being uniform or consistent | consistency | 균일성 |
| high-fidelity | the accurate reproduction of sound or images | accurate reproduction | 고성능 |
| electromagnetic | relating to the interrelation of electric currents or fields and magnetic fields | electric and magnetic | 전자기 |
| anisotropic | having properties that vary depending on the direction of measurement | direction-dependent | 이방성 |
| discontinuity | a point or area where something is not continuous or uniform | interruption | 불연속 |
| defy | to openly resist or refuse to obey | to resist | 반항하다 |
| In light of | considering or taking into account | taking into account | ~을 고려하여 |
| relevance | the quality of being closely connected or appropriate to the matter at hand | pertinence | 관련성 |
| circumvent | to find a way around an obstacle or difficulty | to bypass | 우회하다 |
| pairwise | relating to or involving pairs of things | in pairs | 쌍으로 된 |
| enrich | to improve or enhance the quality or value of something | to enhance | 풍부하게 하다 |
| nuanced | characterized by subtle distinctions or variations | subtle | 미묘한 |
| affinity | a natural liking or attraction to something | liking | 친밀감, 유사성 |
| asymmetric | not identical on both sides of a central line; lacking symmetry | uneven | 비대칭 |
| trump | to surpass or outdo someone or something | to surpass | 능가하다 |
| diffuse | to spread out over a large area; not concentrated | to spread | 확산시키다 |
| inclusion | the act of including or being included within a group or structure | incorporation | 포함 |
| task-agnostic | not specific to any particular task or function | task-independent | 작업에 구애받지 않는 |
| bifurcate | to divide into two branches or parts | to split | 두 갈래로 나누다, 분기하다 |
| governed | controlled or regulated by a set of rules or principles | controlled | 지배되는 |
| In this sense | in the way just described; in this context | in this context | 이런 의미에서 |
| tractable | able to be easily managed or controlled | manageable | 다루기 쉬운 |
| suppress | to put an end to the activities of something | to restrain | 억제하다 |
| deliberately | in a careful and intentional manner | intentionally | 고의로, 의도적으로 |
| coherent | logical and consistent | logical | 일관된, 논리적인 |
| monotonic | consistently increasing or decreasing without any reversals | unchanging | 단조로운 |
| atop | on the top of; above | on top of | ~의 꼭대기에 |
| saliency | the quality of being particularly noticeable or important | prominence | 두드러짐, 현저함 |
| reception | the act of receiving or being received | receiving | 수신 |
| jointly | together with one or more other people or things | together | 공동으로 |
| extrusion | the process of shaping material by forcing it through a die | shaping process | 압출 |
| blockage | an obstruction that prevents movement or flow | obstruction | 막힘, 장애 |
| waypoint | a reference point in physical space used for navigation | navigation point | 웨이포인트, 경유지 |
| redistribute | to distribute something again or differently | to reallocate | 재분배하다 |
| planar | relating to or existing in a flat, two-dimensional surface | flat | 평면의 |
| perimeter | the outer boundary or edge of an area or object | boundary | 둘레, 주변 |
| ablation | the removal of material from the surface of an object by vaporization, chipping, or other erosive processes | removal process | 제거 |
| indiscriminate | not showing careful judgment or distinction | random | 무차별적인 |
| sparsification | the process of making something sparse or less dense | thinning | 희소화 |
| standpoint | a particular perspective or position from which something is considered | perspective | 관점 |
| implication | a possible effect or result of an action or decision | consequence | 시사점 |
| cardinal sides | the four main directions: north, south, east, and west | main directions | 모든 방향 (동서남북) |
| undergo | to experience or be subjected to something | to experience | 겪다 |
| discernible | able to be perceived or recognized | noticeable | 인지할 수 있는 |
| sliceable | able to be cut into thin, flat pieces | cuttable | 얇게 자를 수 있는 |
| substance | a particular kind of matter with uniform properties | material | 물질 |