๐Ÿ  taeyanghub.com โ† All days

๐Ÿ“ฐ English IT Daily ยท 2026-07-13

CEFR B2 ์˜์–ด๋กœ ๋ฐฐ์šฐ๋Š” ์˜ค๋Š˜์˜ ๊ธฐ์ˆ  ๋‰ด์Šค โ€” ๋งค์ผ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ 9๊ฐœ. ๋‹จ์–ด๋ฅผ ์ตํžˆ๊ณ , ๊ธฐ์‚ฌ๋ฅผ ์ฝ๊ณ , ํ† ๋ก  ์งˆ๋ฌธ์œผ๋กœ ๋งํ•ด๋ณด์„ธ์š”.

๐Ÿ“Œ ์˜ค๋Š˜์˜ ํ† ๋ก  ์ฃผ์ œ โ€” ๊ณจ๋ผ์„œ ๋ฐ”๋กœ ์ด๋™

  1. 1AIHow an AI Token Moves Through a Data Center
  2. 2ProgrammingHow Postgres 19 Brings Graph Queries Closer
  3. 3TechWhy Mitchell Hashimoto Built Ghostty
  4. 4ProgrammingA Font That Turns Text Into QR Codes
  5. 5AIGhost Font Tries to Hide Text from AI
  6. 6TechWhen an Android App Should Be a Webpage
  7. 7TechWhy Successful Companies Start Losing Sight
  8. 8ProgrammingA New Layer on Top of Git
  9. 9TechWhy You Donโ€™t Need to Know Every Line
AI

1. How an AI Token Moves Through a Data Center

๐Ÿ“ Vocabulary

moved to center stage/muvd tษ™ หˆsษ›n.tษš steษชdส’/phrasebecame the main focus of attention
์ค‘์‹ฌ ๋ฌด๋Œ€๋กœ ์˜ฌ๋ผ์˜ค๋‹ค, ํ•ต์‹ฌ ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๋˜๋‹ค
e.g. After mobile traffic grew rapidly, app performance moved to center stage.
traffic controller/หˆtrรฆf.ษชk kษ™nหˆtroสŠ.lษš/phrasea system or person that directs where things should go
ํŠธ๋ž˜ํ”ฝ์„ ์กฐ์ •ํ•˜๋Š” ์ œ์–ด์ž, ๊ด€์ œ ์—ญํ• 
e.g. The load balancer acts like a traffic controller for incoming requests.
at scale/รฆt skeษชl/phrasein very large amounts or across a very large system
๋Œ€๊ทœ๋ชจ๋กœ, ํฐ ๊ทœ๋ชจ์—์„œ
e.g. A design that works for ten users may fail at scale.
delicate balancing act/หˆdษ›l.ษ™.kษ™t หˆbรฆl.ษ™n.sษชล‹ รฆkt/phrasea situation where several competing needs must be managed very carefully
์•„์Šฌ์•„์Šฌํ•œ ๊ท ํ˜• ์žก๊ธฐ, ๋ฏธ๋ฌ˜ํ•œ ์กฐ์œจ
e.g. Running a global service is a delicate balancing act between cost and reliability.
ripple through/หˆrษชp.ษ™l ฮธruห/verbto spread from one part to many other parts
์—ฐ์‡„์ ์œผ๋กœ ํผ์ง€๋‹ค, ํŒŒ๊ธ‰๋˜๋‹ค
e.g. A small network issue can ripple through the entire platform.
bottleneck/หˆbษ‘tฬฌ.ษ™lหŒnษ›k/nounthe part of a process that limits speed or capacity
๋ณ‘๋ชฉ ์ง€์ 
e.g. Disk access became the main bottleneck in the test environment.
from scratch/frษ™m skrรฆtสƒ/phrasefrom the beginning, without using previous work
์ฒ˜์Œ๋ถ€ํ„ฐ, ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ
e.g. The team rebuilt the deployment pipeline from scratch.
move the needle/muv รฐษ™ หˆniห.dษ™l/phraseto make a noticeable difference
๋ˆˆ์— ๋„๋Š” ๋ณ€ํ™”๋ฅผ ๋งŒ๋“ค๋‹ค, ์‹ค์งˆ์  ์˜ํ–ฅ์„ ์ฃผ๋‹ค
e.g. A small UI change will not move the needle on system performance.
black box/หˆblรฆk bษ‘ks/nounsomething that is hard to see or understand inside
๋ธ”๋ž™๋ฐ•์Šค, ๋‚ด๋ถ€๊ฐ€ ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š” ๋Œ€์ƒ
e.g. To many users, the recommendation engine is still a black box.
weighted trade-off/หˆweษช.tฬฌษชd หˆtreษชdหŒษ”f/phrasea decision that compares several factors, giving some more importance than others
๊ฐ€์ค‘์น˜๋ฅผ ๋‘” ์ƒ์ถฉ๊ด€๊ณ„, ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฐ˜์˜ํ•œ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„
e.g. Choosing a vendor is a weighted trade-off between price, speed, and security.

๐Ÿ“– Article

Many AI products look very different on the surface, but underneath they do a similar job: they generate tokens, or small units of text, one after another. A user sends a prompt, the model predicts the next token, and then repeats that process until it finishes the answer. This step is called inference. In recent years, inference has moved to center stage because companies now spend huge amounts of money not only to train models, but also to answer requests every second of the day. That is why experts are looking more closely at what happens inside a data center when just one prompt arrives.

The journey usually begins at a gateway. This is the entry point that receives the user request, checks identity and safety rules, and sends the prompt to the right service. After that, a scheduler decides where the work should go. In simple terms, the scheduler is the traffic controller. It tries to match each request with available computing resources while keeping delays low and hardware use efficient. This may sound routine, but at scale it becomes a delicate balancing act. A small delay at the start can ripple through the whole system and hurt the user experience.

Next comes an important split in the process: prefill and decode. During prefill, the model reads the full prompt and builds the internal state it will need for generation. This phase is mostly limited by raw computation, so it strongly affects time to first token, the delay before the first word appears on screen. Decode is different. Once generation begins, the model produces tokens one by one, and this stage often depends more on memory bandwidth than on pure compute power. That means the system may have very fast chips, but still run into a bottleneck if it cannot move model state quickly enough.

One key tool in this flow is the KV cache, which stores attention information from earlier tokens so the model does not need to recalculate everything from scratch each time. That saves work, but it also creates pressure on memory and interconnects. The request then reaches GPUs or other accelerators that run the model itself. In large deployments, several devices may need to work together, so the network inside the data center matters a great deal. Fast links, good scheduling, and careful placement can all move the needle on both speed and cost. If any part lags behind, the whole pipeline suffers.

This is why AI infrastructure is no longer a black box for engineers or investors. The economics depend on each step of the round trip. A model may be impressive in a benchmark, but real services are judged by latency, reliability, and cost per token. Companies also have to think about power, cooling, and physical space, not just chips. In other words, the hard part is not only the model; it is the full system around it. For buyers of inference services, this becomes a weighted trade-off among response speed, consistency at busy times, security, portability, and model coverage.

There are also different views on where long-term value will settle. Some people believe the main winners will be software layers that manage routing, batching, and optimization. Others argue that durable value sits closer to physical constraints such as memory bandwidth, networking, optics, and power delivery. Both sides agree on one thing: token prices are falling fast, while demand keeps climbing. That combination can unlock more usage instead of shrinking the market. For engineers, the lesson is clear. To understand modern AI, it is not enough to know the model architecture. You also need to follow the token, end to end, through the machinery that delivers every answer.

๐Ÿ’ฌ Discussion

  1. Why do you think inference has become more important than many people expected a few years ago?
  2. If you were designing an AI service, which would you prioritize first: lower cost, lower latency, or higher reliability? Why?
  3. Have you ever worked on a system where one hidden bottleneck affected the whole user experience? What happened?
  4. Do you agree that physical limits like memory bandwidth and power may create more long-term value than software optimization alone?
  5. How could understanding the path of one token help software engineers make better architecture or purchasing decisions?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
์ด ์ฃผ์ œ๋Š” AI ์„œ๋น„์Šค์˜ ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ์ด ๋ชจ๋ธ ์ž์ฒด๋ณด๋‹ค๋„ ์ถ”๋ก  ๊ฒฝ๋กœ ์ „์ฒด์— ํฌ๊ฒŒ ์ขŒ์šฐ๋œ๋‹ค๋Š” ์ ์„ ๋ณด์—ฌ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ์ง€์—ฐ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ, ์Šค์ผ€์ค„๋ง, ๋„คํŠธ์›Œํฌ, ์ „๋ ฅ ๊ฐ™์€ ์š”์†Œ๋ฅผ ํ•จ๊ป˜ ๋ด์•ผ ํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ๋ณ‘๋ชฉ์„ ํ† ํฐ ๋‹จ์œ„๋กœ ์ถ”์ ํ•˜๋Š” ๊ด€์ ์ด ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์™€ ์šด์˜ ์ตœ์ ํ™”์— ์ง์ ‘ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
Programming

2. How Postgres 19 Brings Graph Queries Closer

๐Ÿ“ Vocabulary

acts like/รฆkts laษชk/phrasebehaves in a similar way to something else
~์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋‹ค, ~์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋‹ค
e.g. In this model, each foreign key acts like a connection between two records.
bottleneck/หˆbษ‘ห.tฬฌษ™l.nek/nouna point where progress becomes slow because there is a limit
๋ณ‘๋ชฉ, ๋ณ‘๋ชฉ ๊ตฌ๊ฐ„
e.g. Moving all the data into memory became a bottleneck during training.
overlay/หˆoสŠ.vษš.leษช/nounan extra layer placed on top of something that already exists
๋ง์”Œ์šด ๊ณ„์ธต, ์˜ค๋ฒ„๋ ˆ์ด
e.g. The property graph is an overlay on top of relational tables.
pull double duty/pสŠl หˆdสŒb.ษ™l หˆduห.tฬฌi/phraseto serve two purposes at the same time
1์ธ 2์—ญ์„ ํ•˜๋‹ค, ๋‘ ๊ฐ€์ง€ ์—ญํ• ์„ ๋™์‹œ์— ํ•˜๋‹ค
e.g. One table can pull double duty as both a vertex and part of an edge definition.
strict categories/strษชkt หˆkรฆtฬฌ.ษ™หŒษกษ”หr.iหz/phraseclear and fixed groups that do not easily overlap
์—„๊ฒฉํ•œ ๋ฒ”์ฃผ, ๋”ฑ ๋‚˜๋‰œ ๋ถ„๋ฅ˜
e.g. Real systems do not always fit into strict categories.
trade-off/หˆtreษชd ษ”หf/nouna balance where you gain one thing but lose another
์ƒ์ถฉ ๊ด€๊ณ„, ํŠธ๋ ˆ์ด๋“œ์˜คํ”„
e.g. There is a trade-off between query readability and team familiarity.
compile down to/kษ™mหˆpaษชl daสŠn tuห/phraseto be turned into a more basic or final form
~๋กœ ๋ณ€ํ™˜๋˜๋‹ค, ์ตœ์ข…์ ์œผ๋กœ ~๊ฐ€ ๋˜๋‹ค
e.g. Developers want to know what a graph query will compile down to.
in the weeds/ษชn รฐษ™ wiหdz/phrasetoo focused on small details and unable to see the main point
์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋„ˆ๋ฌด ๋น ์ ธ ์žˆ๋Š”, ๋ณธ์งˆ์„ ๋†“์นœ
e.g. The team got in the weeds while debating query syntax.
gain traction/ษกeษชn หˆtrรฆk.สƒษ™n/phraseto start becoming accepted or popular
ํƒ„๋ ฅ์„ ๋ฐ›๋‹ค, ์ฃผ๋ชฉ๋ฐ›๊ธฐ ์‹œ์ž‘ํ•˜๋‹ค
e.g. The feature may gain traction with teams that already use Postgres heavily.
converge/kษ™nหˆvษหdส’/verbto come closer together and become more similar
์ˆ˜๋ ดํ•˜๋‹ค, ์„œ๋กœ ๊ฐ€๊นŒ์›Œ์ง€๋‹ค
e.g. Graph methods and relational methods are starting to converge.

๐Ÿ“– Article

Postgres 19 introduces a new property graph feature that lets developers describe graph relationships on top of ordinary relational tables. The idea is simple but powerful. In many systems, the schema already looks like a graph: rows can act like nodes, and foreign keys can act like edges. For example, a race result can point to a driver, a race, and a constructor. In standard SQL, developers follow those links with joins. With property graphs, Postgres adds another way to ask the same kind of question, using graph patterns instead of writing every join by hand.

This matters because graph-shaped problems appear in many domains. Recommendation systems, fraud analysis, social networks, logistics, and scientific research often depend on connections between records, not just single rows. Researchers working on relational deep learning have also argued that a normalized schema already contains useful graph structure. In many current workflows, however, that structure gets pulled out of the database and rebuilt in Python or another tool. That can become a bottleneck, especially when teams want one system of record instead of moving large amounts of information into memory.

The new feature in Postgres 19 is not a separate graph database hidden inside Postgres. Instead, it is an overlay on existing tables. Developers create a named property graph and declare which tables should be treated as vertices and which should be treated as edges. They also define keys, labels, and the properties that can be queried. In plain terms, this means teams can map their current schema into a graph model without copying the rows anywhere else. The underlying tables stay where they are, and the graph view sits on top of them.

A key point from early hands-on exploration is that a table can pull double duty. In the Formula 1 example discussed in the source article, a results table can be treated as a vertex with its own properties, but rows from related edge definitions can also connect those results to drivers or races. That idea may feel unusual at first if you think in strict categories, where one table must be either an entity table or a relationship table. In practice, many business events carry both meanings. An event can be a thing you want to analyze on its own, and it can also serve as a link between other things.

The practical benefit is readability and flexibility. A graph pattern can express traversal more directly than a long chain of joins, especially when the question is about paths or repeated relationships. At the same time, there are trade-offs. SQL joins are familiar, mature, and often easier for teams to debug because everyone knows what they compile down to. A graph layer could streamline some queries, but it may also introduce a learning curve. If developers are not careful, they could get lost in the weeds trying to decide whether a graph pattern is truly clearer than a conventional SQL statement.

For engineers, the larger takeaway is that relational and graph thinking are starting to converge. Postgres 19 does not replace relational design; rather, it broadens the toolkit. Teams that already store highly connected information in Postgres may gain traction from using graph patterns without adopting a separate platform. The feature is still new, so it will be worth watching how well it fits real production workloads, how query performance behaves, and how smoothly it works with analytics and AI pipelines. Even so, it signals a shift: graph-style questions no longer have to live only outside the relational world.

๐Ÿ’ฌ Discussion

  1. Have you ever worked with data that felt more like a graph than a set of tables? What made it difficult or easy to query?
  2. Do you think graph patterns are easier to read than long SQL joins? Why or why not?
  3. What are the advantages of keeping graph-style queries inside the same relational system instead of exporting data to another tool?
  4. Can you think of a case in your work where one table might pull double duty as both an event and a relationship?
  5. If you were evaluating this feature for production use, what would you test first: performance, developer experience, query clarity, or something else?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
์ด ์ฃผ์ œ๋Š” ๊ด€๊ณ„ํ˜• ์Šคํ‚ค๋งˆ์™€ ๊ทธ๋ž˜ํ”„ ์‚ฌ๊ณ ๋ฐฉ์‹์ด ์ ์  ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ๊ธฐ์กด ํ…Œ์ด๋ธ”์„ ๊ทธ๋Œ€๋กœ ๋‘๋ฉด์„œ๋„ ์—ฐ๊ฒฐ ์ค‘์‹ฌ ์งˆ์˜๋ฅผ ๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์—ฌ ์ฃผ๋ฏ€๋กœ, ์Šคํ‚ค๋งˆ ์„ค๊ณ„, ์ฟผ๋ฆฌ ๊ฐ€๋…์„ฑ, ์„ฑ๋Šฅ ๊ฒ€์ฆ ๊ด€์ ์—์„œ ํ•จ๊ป˜ ํ•™์Šตํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Tech

3. Why Mitchell Hashimoto Built Ghostty

๐Ÿ“ Vocabulary

sharpen skills/หˆสƒษ‘r.pษ™n skษชlz/phraseto improve an ability and become better at it again
๊ธฐ์ˆ ์„ ๊ฐˆ๊ณ ๋‹ฆ๋‹ค, ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ค๋‹ค
e.g. She took a side project to sharpen her skills in systems programming.
grown dull/ษกroสŠn dสŒl/phrasebecome weaker or less sharp because of lack of use
๋ฌด๋ŽŒ์ง€๋‹ค, ๊ฐ์ด ๋–จ์–ด์ง€๋‹ค
e.g. After years in management, he felt some of his coding instincts had grown dull.
dig into/dษชษก หˆษชn.tu/phrasal verbto study or examine something carefully
๊นŠ์ด ํŒŒ๊ณ ๋“ค๋‹ค, ์ž์„ธํžˆ ์กฐ์‚ฌํ•˜๋‹ค
e.g. The team decided to dig into the terminal protocol before redesigning it.
fit the niche/fษชt รฐษ™ nษชtสƒ/phraseto match a specific need or special area in the market
ํŠน์ • ํ‹ˆ์ƒˆ ์ˆ˜์š”์— ๋งž๋‹ค
e.g. Few products fit the niche of fast, cross-platform developer tools.
gain traction/ษกeษชn หˆtrรฆk.สƒษ™n/phraseto start becoming popular or successful
ํƒ„๋ ฅ์„ ๋ฐ›๋‹ค, ์ฃผ๋ชฉ์„ ๋ฐ›๊ธฐ ์‹œ์ž‘ํ•˜๋‹ค
e.g. The open-source project gained traction after early users recommended it online.
undue attention/หŒสŒnหˆdu ษ™หˆtษ›n.สƒษ™n/phrasemore attention than is fair, useful, or necessary
๊ณผ๋„ํ•œ ๊ด€์‹ฌ, ๋ถˆํ•„์š”ํ•˜๊ฒŒ ํฐ ์ฃผ๋ชฉ
e.g. A famous founder can bring undue attention to an unfinished product.
a double-edged sword/ษ™ หŒdสŒb.ษ™l หˆษ›dส’d sษ”rd/phrasesomething that has both benefits and drawbacks
์–‘๋‚ ์˜ ๊ฒ€
e.g. Rapid growth can be a double-edged sword for a small maintainer team.
push back against/pสŠสƒ bรฆk ษ™หˆษกษ›nst/phrasal verbto resist or argue against an idea or pressure
๋ฐ˜๋Œ€ํ•˜๋‹ค, ๋งž์„œ๋‹ค
e.g. Some developers push back against turning terminals into full app platforms.
scriptability/หŒskrษชp.tษ™หˆbษชl.ษ™.tฬฌi/nounthe quality of being easy to control with scripts or automation
์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ๋ฐ ์ž๋™ํ™” ์šฉ์ด์„ฑ
e.g. For many engineers, scriptability is more important than flashy interface features.
in the weeds/ษชn รฐษ™ wiหdz/phrasedealing with small, detailed, or complicated parts of a topic
์„ธ๋ถ€ ์‚ฌํ•ญ์— ๊นŠ์ด ๋“ค์–ด๊ฐ„, ๋„ˆ๋ฌด ๋””ํ…Œ์ผํ•œ
e.g. The discussion got in the weeds, but the protocol details still mattered.

๐Ÿ“– Article

Mitchell Hashimoto is one of the best-known names in developer tools and open-source infrastructure. He helped create products such as Vagrant, Packer, Consul, Terraform, Vault, Nomad, and Waypoint. In a recent interview with Alex Alejandre, he spoke about a very different project: Ghostty, a terminal emulator. He also discussed the Zig programming language and the realities of open-source maintenance. The interview matters because it shows how an experienced founder and engineer thinks when he returns to low-level technical work after years of leading products and companies.

Hashimoto said Ghostty began as a personal technical challenge rather than a business plan. After leaving HashiCorp, he wanted to sharpen skills that had grown dull over time. In particular, he wanted to work on GPU programming, desktop or single-node systems, and Zig. He had spent many years building command-line tools, but he realized he did not fully understand how a terminal emulator worked. His original aim was simple: build something good enough to run Vim and a compiler, let it build itself, and then throw it away. But as he dug into the terminal world, he found that nothing really fit the niche he wanted: something fast, feature-rich, and natively cross-platform.

That gap in the market gave Ghostty room to gain traction. Hashimoto shared early versions with friends, and those users started relying on it every day. The projectโ€™s Discord community reportedly began as a private group chat among friends and then took on a larger role. He also said he avoided a public launch for some time because his reputation could bring undue attention before the product was ready. This is a familiar open-source problem: a well-known developer can attract users quickly, but that attention can be a double-edged sword. It can create excitement, but it can also raise expectations, increase support requests, and put extra pressure on maintainers.

In the interview, Hashimoto also pushed back against the idea that terminals should become all-purpose platforms like web browsers. In theory, terminal applications could add more and more features, including richer media or more advanced interface behavior. However, he argued that terminals are at their best when they focus on what makes them unique: text-based interaction, speed, scriptability, and a clear security model. In his view, terminal tools are especially strong when they can be composed easily, following the long-standing Unix idea that programs should do one thing well and work together. Better terminal applications, he suggested, could also lead to better automation.

At the same time, he pointed to a deeper technical obstacle. Traditional terminals and pseudo-terminals, often shortened to PTYs, still depend heavily on in-band signaling. In simple terms, that means information is sent through one unstructured byte stream mixed with escape sequences. This system has worked for decades, but it can be messy and limiting. Hashimoto suggested that the ecosystem needs more fundamental improvement rather than endless small patches on top. That view is notable because many developers treat terminal behavior as old but settled technology. His comments suggest there is still a lot of low-level design work left to do.

The interview also highlights a broader issue in open source: maintenance is rarely glamorous, but it shapes the tools millions of people use. Building a popular project is one challenge; sustaining it is another. Ghostty, Zig, and terminal protocols may sound like topics in the weeds, yet they affect developer productivity, portability, and reliability in everyday work. For engineers, the big takeaway is that mature tools still have room for reinvention. For maintainers, the message is just as clear: success is not only about shipping code, but also about choosing a scope, setting expectations, and protecting the long-term health of a project.

๐Ÿ’ฌ Discussion

  1. Why do you think an experienced founder would choose to work on a terminal emulator instead of a bigger mainstream product?
  2. Do you agree that terminals should stay focused on text, speed, and automation rather than becoming more like browsers? Why or why not?
  3. Have you ever used a tool that became popular too quickly? What problems can rapid attention create for maintainers?
  4. What kinds of low-level developer tools still need reinvention, even if many people think they are already mature?
  5. How important are scriptability and composability in your daily engineering work compared with visual features or convenience?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
์ด ์ธํ„ฐ๋ทฐ๋Š” ์˜ค๋ž˜๋œ ๊ฐœ๋ฐœ ๋„๊ตฌ ์˜์—ญ๋„ ์•„์ง ํฌ๊ฒŒ ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋ณด์—ฌ์ค€๋‹ค. ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ๋„๊ตฌ์˜ ์„ฑ๋Šฅ์ด๋‚˜ ๊ธฐ๋Šฅ๋ฟ ์•„๋‹ˆ๋ผ ์œ ์ง€๋ณด์ˆ˜ ๋ฒ”์œ„, ์‚ฌ์šฉ์ž ๊ธฐ๋Œ€์น˜, ์ž๋™ํ™” ์นœํ™”์„ฑ ๊ฐ™์€ ์š”์†Œ๊ฐ€ ์ œํ’ˆ์˜ ์žฅ๊ธฐ ์„ฑ๊ณต์„ ์ขŒ์šฐํ•œ๋‹ค๋Š” ์ ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค.
Programming

4. A Font That Turns Text Into QR Codes

๐Ÿ“ Vocabulary

at first glance/รฆt fษหst ษกlรฆns/phrasewhen you first look at something or think about it
์–ธ๋œป ๋ณด๋ฉด, ์ฒ˜์Œ ๋ดค์„ ๋•Œ
e.g. At first glance, the tool looked simple, but its design was very clever.
blur the line/blษห รฐษ™ laษชn/phraseto make the difference between two things less clear
๊ฒฝ๊ณ„๋ฅผ ํ๋ฆฌ๋‹ค
e.g. New interfaces often blur the line between content and control.
across the board/ษ™หˆkrษ”หs รฐษ™ bษ”หrd/phrasein every area or for everyone
์ „๋ฐ˜์ ์œผ๋กœ, ์ „ ์˜์—ญ์— ๊ฑธ์ณ
e.g. The company did not reduce costs across the board, only in a few teams.
lower in the stack/หˆloสŠ.ษš ษชn รฐษ™ stรฆk/phrasecloser to the basic system layer rather than the user-facing layer
์Šคํƒ์˜ ๋” ํ•˜์œ„ ๊ณ„์ธต์—์„œ
e.g. The bug was not in the app itself but lower in the stack.
wrinkle/หˆrษชล‹.kษ™l/nouna small problem, difficulty, or unexpected detail
๋œป๋ฐ–์˜ ๋ฌธ์ œ์ , ๊นŒ๋‹ค๋กœ์šด ์„ธ๋ถ€ ์‚ฌํ•ญ
e.g. There was one wrinkle in the plan: older devices could not display the text correctly.
sidestep/หˆsaษชd.step/verbto avoid a problem or avoid dealing with something directly
ํšŒํ”ผํ•˜๋‹ค, ์šฐํšŒํ•˜๋‹ค
e.g. The team used a cache to sidestep repeated processing.
a double-edged sword/ษ™ หŒdสŒb.ษ™l หˆedส’d sษ”หrd/phrasesomething that has both benefits and disadvantages
์–‘๋‚ ์˜ ๊ฒ€
e.g. Automation can be a double-edged sword if it saves time but hides errors.
trip people up/trษชp หˆpiห.pษ™l สŒp/phraseto cause confusion or make someone fail
ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ํ•˜๋‹ค, ์‹ค์ˆ˜ํ•˜๊ฒŒ ๋งŒ๋“ค๋‹ค
e.g. Small naming differences can trip people up during deployment.
gain traction/ษกeษชn หˆtrรฆk.สƒษ™n/phraseto become more popular, accepted, or successful
๊ด€์‹ฌ์„ ์–ป๋‹ค, ํƒ„๋ ฅ์„ ๋ฐ›๋‹ค
e.g. The idea gained traction after several developers shared examples online.
source of truth/sษ”หrs ษ™v truหฮธ/phrasethe main and most trusted place where correct information is kept
๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›, ๊ธฐ์ค€ ์ •๋ณด ์›์ฒœ
e.g. The configuration file should be the source of truth for all environments.

๐Ÿ“– Article

A small web project is showing a surprising idea: a real TrueType and OpenType font can turn text inside square brackets into QR codes. Instead of creating an image file, the user simply types something like [hello], applies the font, and the letters are shaped into a QR pattern. Text outside the brackets stays normal and readable. At first glance, this may sound like a neat trick, but it also highlights how far modern font technology can go beyond ordinary typography.

The project works through text shaping, which is the process that a system uses to decide how characters should be displayed. In this case, the font includes built-in OpenType rules that replace bracketed text with a QR code during rendering. That means there is no separate image generation step and no preprocessing pipeline. The content is still stored as ordinary text characters, so users can copy and paste it, keep it in plain text files, or place it inline with regular Latin text. In other words, the font blurs the line between text and graphic output.

The idea is clever because it challenges a basic assumption: people usually think of fonts as visual style, not as logic. Yet advanced fonts can contain substitution rules that react to the text they receive. This project pushes that capability in an unusual direction. It is not trying to replace standard QR tools across the board, but it opens a new path for lightweight experiments, artistic layouts, and compact workflows. For developers, it is also a reminder that some problems can be solved lower in the stack than expected.

There are limits, of course. The project offers several font versions with different character capacities, so the amount of text that can fit in one QR block is restricted. The source context says users should use printable ASCII inside square brackets, and each font supports only up to a certain number of characters. There is also a browser-specific wrinkle. Layout engines usually decide line breaks before text shaping happens, so a QR block may be split across lines if the original text includes spaces, dots, or slashes near the edge of a container. To sidestep that problem in HTML, the bracketed text should be wrapped in an element styled with white-space: nowrap or display: inline-block.

That trade-off makes the font both practical and experimental. On one hand, keeping the QR content as text is elegant. It can travel through copy-and-paste workflows, remain readable outside the brackets, and fit into plain text systems where images would be awkward. On the other hand, reliability depends on the rendering environment, and that can be a double-edged sword. If a design relies heavily on layout behavior in browsers or other apps, small differences in text handling could trip people up. As a result, this approach is probably best suited to controlled contexts rather than every production scenario.

Even so, projects like this often gain traction because they make engineers look at old tools with fresh eyes. A font that generates QR codes will not overturn the wider ecosystem, but it does show that typography, encoding, and interface design can overlap in unexpected ways. It may inspire more experiments in which text remains the source of truth while presentation becomes smarter at render time. For programmers, the larger lesson is simple: sometimes the most interesting ideas come from bending familiar standards, not from building a whole new system from scratch.

๐Ÿ’ฌ Discussion

  1. What do you think is the most interesting part of turning text into QR codes with a font instead of an image generator?
  2. Can you imagine any real work situations where plain-text QR codes would be useful or convenient?
  3. Do you think this approach is mainly a creative experiment, or could it become practical in some products? Why?
  4. Have you ever seen a tool that solved a problem lower in the stack than you expected? What was the advantage?
  5. What risks would you check before using this kind of font-based solution in a production environment?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
์ด ์ฃผ์ œ๋Š” ํฐํŠธ๊ฐ€ ๋‹จ์ˆœํ•œ ์‹œ๊ฐ ์Šคํƒ€์ผ์„ ๋„˜์–ด์„œ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ์™€ ๋ Œ๋”๋ง ๋กœ์ง๊นŒ์ง€ ๋‹ด๋‹นํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ ์ค€๋‹ค๋Š” ์ ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ํ‘œํ˜„ ๊ณ„์ธต์˜ ๊ธฐ๋Šฅ์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋ณ„๋„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์—†์ด๋„ ์ƒˆ๋กœ์šด ์›Œํฌํ”Œ๋กœ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ธŒ๋ผ์šฐ์ € ์ค„๋ฐ”๊ฟˆ์ด๋‚˜ ๋ Œ๋”๋ง ํ™˜๊ฒฝ ์ฐจ์ด ๊ฐ™์€ ์ œ์•ฝ๋„ ํ•จ๊ป˜ ๊ฒ€ํ† ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
AI

5. Ghost Font Tries to Hide Text from AI

๐Ÿ“ Vocabulary

struck a nerve/strสŒk ษ™ nษv/phrasecaused a strong emotional reaction because it touched a sensitive issue
๋ฏผ๊ฐํ•œ ๋ถ€๋ถ„์„ ๊ฑด๋“œ๋ฆฌ๋‹ค, ๊ฐ•ํ•œ ๋ฐ˜์‘์„ ์ผ์œผํ‚ค๋‹ค
e.g. The debate about AI-generated art struck a nerve with many designers.
visual noise/หˆvษชส’.u.ษ™l nษ”ษชz/phraserandom marks or details that make something hard to see clearly
์‹œ๊ฐ์  ๋…ธ์ด์ฆˆ, ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ์žก์‹œ๊ฐ ์š”์†Œ
e.g. Too much visual noise on a dashboard can hide the most useful information.
throw AI models off the scent/ฮธroสŠ eษช หˆaษช หˆmษ‘d.ษ™lz ษ”f รฐษ™ sษ›nt/phraseto confuse AI systems so they follow the wrong clue
AI ๋ชจ๋ธ์˜ ์ถ”์ ์„ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ํ•˜๋‹ค, ์—‰๋šฑํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์œ ๋„ํ•˜๋‹ค
e.g. The fake labels were added to throw the image classifier off the scent.
caught up with/kษ‘t สŒp wษชรฐ/phrasereached the same level after being behind before
๋”ฐ๋ผ์žก๋‹ค, ๊ฒฉ์ฐจ๋ฅผ ๋ฉ”์šฐ๋‹ค
e.g. AI has caught up with some tasks that used to require manual review.
move the goalposts/muv รฐษ™ หˆษกoสŠl.poสŠsts/phraseto change the conditions or standard in a way that creates a new challenge
๊ธฐ์ค€์„ ๋ฐ”๊พธ๋‹ค, ํŒ์„ ์ƒˆ๋กœ ์งœ๋‹ค
e.g. When attackers learned the old defense, the team had to move the goalposts.
silver bullet/หˆsษชl.vษš หˆbสŠl.ษชt/nouna simple solution that completely fixes a difficult problem
๋งŒ๋Šฅ ํ•ด๊ฒฐ์ฑ…, ์€ํƒ„ํ™˜
e.g. There is no silver bullet for security, so companies need several layers of defense.
trade-off/หˆtreษชd หŒษ”f/nouna balance where you gain one thing but lose another
์ƒ์ถฉ ๊ด€๊ณ„, ํŠธ๋ ˆ์ด๋“œ์˜คํ”„
e.g. Better privacy often comes with a trade-off in convenience.
tug-of-war/หŒtสŒษก ษ™v หˆwษ”r/nouna continuing struggle between two sides with different goals
์ค„๋‹ค๋ฆฌ๊ธฐ, ํž˜๊ฒจ๋ฃจ๊ธฐ
e.g. There is a tug-of-war between fast product releases and careful testing.
double-edged sword/หŒdสŒb.ษ™l ษ›dส’d sษ”rd/phrasesomething that has both benefits and risks
์–‘๋‚ ์˜ ๊ฒ€
e.g. Automation is a double-edged sword because it saves time but can remove human checks.
gains traction/ษกeษชnz หˆtrรฆk.สƒษ™n/phrasebecomes more popular, accepted, or successful
ํƒ„๋ ฅ์„ ๋ฐ›๋‹ค, ์ ์  ์ฃผ๋ชฉ๋ฐ›๋‹ค
e.g. The idea of privacy-first design is gaining traction in many companies.

๐Ÿ“– Article

A new experiment called Ghost Font asks a simple but timely question: can people share written messages in a way that humans can read, but AI systems cannot? The project presents itself as an anti-AI font, although it is not a normal font file. Instead, it turns text into moving video. The idea is that the human eye is very good at noticing motion and patterns over time, while many AI tools still depend on clear static images or standard text. In a period when AI can scan screenshots, documents, and photos with growing accuracy, this idea has struck a nerve.

Ghost Font works by showing letters through motion rather than through fixed shapes. Dots move in a way that lets a human viewer recognize a word almost immediately, even though a single paused frame looks like meaningless visual noise. The project also uses decoys, or false visual clues, to throw AI models off the scent. According to the project description, when recent AI models were given videos created with Ghost Font, they often read the decoy message instead of the real moving one. In other cases, they struggled unless they were told exactly what method to look for.

That design matters because modern AI has already caught up with older anti-reading techniques. The source page points to ZXX, a typeface released in 2013 and described at the time as readable by humans but difficult for optical character recognition, or OCR, software. Its letters were hidden with noise and misleading marks. But what once looked surveillance-proof no longer seems so strong. Today, advanced AI systems can often read text in ZXX with little trouble. Ghost Font is trying to move the goalposts by using time and motion, not only shape, as part of written communication.

The project is still a prototype, and its creator does not claim that it is a silver bullet. In fact, the source explicitly notes an important trade-off: simply hiding a message in video is not a perfect defense. A model working in a limited online environment may fail to decode the message frame by frame, but a more determined attacker could still analyze the video in detail, write custom code, or use computer vision techniques designed for motion. As with many privacy tools, the real question is not whether a system is impossible to break, but whether it raises the cost and effort of breaking it.

This makes Ghost Font interesting beyond its novelty. It highlights a growing tug-of-war between human communication and automated reading. Many people now assume that anything visible on a screen can be captured, indexed, summarized, and reused by AI. For artists, journalists, private communities, or anyone who wants a message to stay among real viewers, that shift creates unease. A tool like Ghost Font pushes back against the idea that all digital text must be machine-friendly. At the same time, it is a double-edged sword: a format that blocks AI assistants could also reduce accessibility, searchability, translation, and archiving.

For people in tech, the bigger lesson may be conceptual rather than practical. Ghost Font shows that human perception and machine perception do not always overlap, even when AI seems highly capable. It also reminds us that benchmarks can be misleading if they focus only on standard inputs. Systems that perform well on screenshots or documents may still fall short when information is spread across motion, distraction, and ambiguity. Whether Ghost Font gains traction or remains a clever side experiment, it points to a future in which interface design, security, and AI resistance become more tightly connected.

๐Ÿ’ฌ Discussion

  1. Do you think tools like Ghost Font are mainly useful, mainly symbolic, or both? Why?
  2. In your work or daily life, when would you want humans to read content easily but AI systems to struggle with it?
  3. What are the biggest trade-offs between AI resistance and accessibility for users?
  4. Do you think AI models will quickly catch up with techniques like Ghost Font, or can human-centered design stay ahead for a while?
  5. How should engineers and designers think differently if every visible screen element may be scanned and interpreted by AI?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
Ghost Font๋Š” ์‚ฌ๋žŒ์ด ์ฝ๋Š” ๋ฐฉ์‹๊ณผ AI๊ฐ€ ์ฝ๋Š” ๋ฐฉ์‹์ด ์•„์ง ์™„์ „ํžˆ ๊ฐ™์ง€ ์•Š๋‹ค๋Š” ์ ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ๋ณด์•ˆ, ํ”„๋ผ์ด๋ฒ„์‹œ, ์ ‘๊ทผ์„ฑ ์‚ฌ์ด์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ• ์ง€ ์ƒ๊ฐํ•˜๊ฒŒ ํ•˜๋ฉฐ, ์•ž์œผ๋กœ๋Š” ํ™”๋ฉด์— ๋ณด์ด๋Š” ์ •๋ณด ์ž์ฒด๋ฅผ โ€˜AI์— ์–ผ๋งˆ๋‚˜ ์ฝํžˆ๊ธฐ ์‰ฌ์šด๊ฐ€โ€™๋ผ๋Š” ๊ด€์ ์—์„œ๋„ ํ‰๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ํ•™์Šต ํฌ์ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Tech

6. When an Android App Should Be a Webpage

๐Ÿ“ Vocabulary

raised a basic question/reษชzd ษ™ หˆbeษช.sษชk หˆkwes.tสƒษ™n/phrasecaused people to think about an important point
๊ทผ๋ณธ์ ์ธ ์˜๋ฌธ์„ ์ œ๊ธฐํ•˜๋‹ค
e.g. The new pricing model raised a basic question about who the service was really for.
extra baggage/หˆek.strษ™ หˆbรฆษก.ษชdส’/phraseunnecessary problems, limits, or unwanted features
๋ถˆํ•„์š”ํ•œ ์ง, ๊ตฐ๋”๋”๊ธฐ, ์ถ”๊ฐ€ ๋ถ€๋‹ด
e.g. The tool works, but it comes with extra baggage that most teams do not need.
drawbacks/หˆdrษ”หŒbรฆks/nounnegative parts or disadvantages of something
๋‹จ์ ๋“ค, ๊ฒฐ์ ๋“ค
e.g. Every authentication method has benefits as well as drawbacks.
cut through the noise/kสŒt ฮธru รฐษ™ nษ”ษชz/phraseremove irrelevant information so the main point is clear
๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฑท์–ด๋‚ด๊ณ  ํ•ต์‹ฌ์„ ํŒŒ์•…ํ•˜๋‹ค
e.g. Good monitoring dashboards help engineers cut through the noise during incidents.
experimentation/ษชkหŒsper.ษ™.mษ™nหˆteษช.สƒษ™n/nounthe process of testing ideas or methods to learn what happens
์‹คํ—˜, ์‹œํ—˜์  ์‹œ๋„
e.g. Rapid experimentation is often necessary when a bug cannot be reproduced easily.
mobile wrapper/หˆmoสŠ.bษ™l หˆrรฆp.ษš/phrasea simple app layer that mainly displays web-based content
๋ชจ๋ฐ”์ผ ๋ž˜ํผ, ์›น ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ์‹ธ๋Š” ์–‡์€ ์•ฑ ๊ป๋ฐ๊ธฐ
e.g. Some shopping apps are basically a mobile wrapper around an existing website.
workaround/หˆwษหk.ษ™หŒraสŠnd/nouna temporary or alternative way to solve a problem
์šฐํšŒ์ฑ…, ์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
e.g. Until the vendor fixed the bug, the team used a simple workaround.
blurry/หˆblษห.i/adjectiveunclear or hard to separate into neat categories
ํ๋ฆฟํ•œ, ๊ฒฝ๊ณ„๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•œ
e.g. The boundary between infrastructure and application support can become blurry in small teams.
a double-edged sword/ษ™ หˆdสŒb.ษ™l หŒedส’d sษ”rd/phrasesomething that has both advantages and disadvantages
์–‘๋‚ ์˜ ๊ฒ€
e.g. Automation is a double-edged sword when people stop checking the results carefully.
rolling out/หˆroสŠ.lษชล‹ aสŠt/verbintroducing something new to users or customers
์ถœ์‹œํ•˜๋Š”, ๋ฐฐํฌํ•˜๋Š”, ๋„์ž…ํ•˜๋Š”
e.g. The company is rolling out a new login flow next month.

๐Ÿ“– Article

A recent blog post by developer Dan Q argues that some mobile apps do not need to be apps at all. He wrote about a travel app called Travelbound, which families were asked to install to see a trip itinerary, accommodation details, and related documents. After trying it, he felt the app was doing a job that a normal webpage could handle more simply. In his view, the content was mostly text, images, and links to PDF files. That raised a basic question: why ask users to download and keep a separate app for information that could live on the web?

His complaint was not only about convenience. He said a webpage would be easier to copy, print, save, bookmark, and search. It would also work on almost any device and could be more accessible for users with different needs. By contrast, he believed the app added extra baggage. According to his description, it also included tracking linked to a Google account and showed promotional content for other trips. From his point of view, those features were not benefits but drawbacks. This is a familiar debate in tech: companies often package simple information inside an app, even when the browser might be enough.

To test his idea, Dan Q decided to inspect how the Android app worked. He set up a virtual Android device, rooted it, and used a traffic interception tool to watch the app's network requests. In simple terms, he placed the app under a microscope and looked at what it asked for when it loaded information. He then installed the app and configured the proxy so it would focus only on that one app's traffic. This cut through the noise and made it easier to understand the app's behavior.

After a short period of experimentation, he found that the app was requesting trip information from a web address built from the user's login details. That request returned JSON, a structured text format often used to move information between systems. The response appeared to contain the full itinerary, references to files such as images, and a separate section for promotional items. In other words, the app was not doing heavy local processing. It was mainly fetching content from the web and presenting it in a mobile wrapper. He also noticed that some image links expired after a while, which meant the content needed to be fetched again from time to time.

With that discovery in hand, he built an alternative. He wrote a Ruby script that runs on a schedule, pulls the latest JSON, and turns it into an HTML page. He chose to leave out the promotional section and focus on the practical information: the itinerary and the attached files. This workaround shows how thin some apps really are. If the core content already comes from web requests and can be rendered as HTML, the line between an app and a webpage starts to look blurry. For users, that can be a double-edged sword: apps may feel polished, but they can also create friction when they are unnecessary.

The bigger issue goes beyond one travel app. Many organizations still prefer apps because they offer branding, notifications, analytics, and a more controlled user experience. In some cases, that trade-off makes sense, especially when offline features, device integration, or secure local storage are important. But when an app is little more than a container for web content, people may push back. For engineers and product teams, this story is a useful reminder to question assumptions. Before rolling out another app, it is worth asking whether the browser already solves the real problem in a simpler, more open way.

vocabulary_en,

๐Ÿ’ฌ Discussion

  1. Have you ever installed an app that felt unnecessary because a webpage would have been enough? What made you feel that way?
  2. In what situations do you think a dedicated app is clearly better than a website?
  3. What are the trade-offs between user convenience and company goals such as analytics, branding, and notifications?
  4. From an engineer's point of view, what security or privacy concerns appear when an app mainly acts as a wrapper around web content?
  5. If you were advising a product team, how would you decide whether to build a native app, a web app, or both?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
์ด ์ฃผ์ œ๋Š” ์ œํ’ˆ์ด ์ •๋ง ์•ฑ์ด์–ด์•ผ ํ•˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ์›น์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•œ์ง€๋ฅผ ๋‹ค์‹œ ์ƒ๊ฐํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ์ ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. IT ์‹ค๋ฌด์—์„œ๋Š” ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ, ์ ‘๊ทผ์„ฑ, ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ, ์ถ”์ ๊ณผ ๊ด‘๊ณ  ๊ฐ™์€ ๋น„๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ๊นŒ์ง€ ํ•จ๊ป˜ ๋น„๊ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„คํŠธ์›Œํฌ ๋™์ž‘์„ ์ดํ•ดํ•˜๋ฉด ์„œ๋น„์Šค์˜ ์‹ค์ œ ๊ตฌ์กฐ์™€ ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ์„ ๋” ์ž˜ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Tech

7. Why Successful Companies Start Losing Sight

๐Ÿ“ Vocabulary

frame of reference/freษชm ษ™v หˆrษ›f.ษš.ษ™ns/phrasethe experience or knowledge someone uses to judge and understand something
ํŒ๋‹จ ๊ธฐ์ค€, ์ฐธ์กฐ ํ‹€
e.g. Engineers with experience at other companies often bring a different frame of reference.
hiring bar/หˆhaษช.ษš.ษชล‹ bษ‘r/phrasethe standard a company uses when deciding who is good enough to hire
์ฑ„์šฉ ๊ธฐ์ค€
e.g. When the team expanded too fast, the hiring bar started to fall.
vestigial trait/vษ›หˆstษชdส’.i.ษ™l treษชt/phrasean ability or feature that still exists but is no longer useful or active
ํ‡ดํ™”ํ•œ ํŠน์„ฑ, ํ”์ ๋งŒ ๋‚จ์€ ๋Šฅ๋ ฅ
e.g. In some organizations, careful testing becomes a vestigial trait.
brushed aside/brสŒสƒt ษ™หˆsaษชd/phraseignored or treated as unimportant
๋ฌด์‹œ๋œ, ์ผ์ถ•๋œ
e.g. Her warning about technical debt was brushed aside during the product launch.
out of step with/aสŠt ษ™v stษ›p wษชรฐ/phrasenot in agreement with what others are doing or thinking
~์™€ ๋ณด์กฐ๊ฐ€ ๋งž์ง€ ์•Š๋Š”, ๋™๋–จ์–ด์ง„
e.g. The old release process was out of step with modern engineering practice.
double-edged sword/หŒdสŒb.ษ™l หˆษ›dส’d sษ”rd/phrasesomething that has both advantages and disadvantages
์–‘๋‚ ์˜ ๊ฒ€
e.g. A strict review process can be a double-edged sword if it slows every team down.
intrinsic motivation/ษชnหˆtrษชn.zษชk หŒmoสŠ.tษ™หˆveษช.สƒษ™n/nounthe desire to do something because you personally care about it, not because of outside pressure
๋‚ด์žฌ์  ๋™๊ธฐ
e.g. Developers often do their best work when they have strong intrinsic motivation.
ambient/หˆรฆm.bi.ษ™nt/adjectivepresent around you in a general way; existing throughout an environment
์ฃผ๋ณ€์— ํผ์ ธ ์žˆ๋Š”, ํ™˜๊ฒฝ ์ „๋ฐ˜์˜
e.g. In strong teams, a culture of learning feels ambient rather than forced.
mask/mรฆsk/verbto hide something or make it hard to notice
๊ฐ€๋ฆฌ๋‹ค, ์ˆจ๊ธฐ๋‹ค
e.g. Good quarterly results can mask deeper technical problems.
resilient/rษชหˆzษชl.jษ™nt/adjectiveable to recover quickly from problems or change
ํšŒ๋ณต๋ ฅ์ด ์žˆ๋Š”, ํƒ„๋ ฅ์ ์ธ
e.g. A resilient system can continue operating even when one part fails.

๐Ÿ“– Article

A recent essay by Ian Reppel uses an unusual animal to explain a common business problem. The Mexican cavefish lives in two nearby environments. In rivers, it has eyes and behaves like a normal fish. In dark caves, members of the same species are blind. Their genes are still almost the same, but the environment changes which traits are expressed. In the cave, energy no longer goes into sight. Instead, it is redirected to abilities that help the fish survive there, such as better smell and stronger fat reserves. Reppel argues that something similar can happen inside successful companies.

His main idea is not the usual story about large firms missing a market shift because they protect old products or profits. Instead, he describes what he calls โ€œcompetence blindness.โ€ This happens when a company grows fast and gradually stops recognizing good engineering practice. At first, speed may be necessary. Teams hire quickly, and the hiring bar can slip in order to fill roles. New engineers learn the companyโ€™s habits from people who also grew up inside the same system. After several rounds, many employees have no outside frame of reference. They may be skilled and hard-working, but they cannot easily see that some of the companyโ€™s ways are weak.

From the outside, such a company can still look healthy. Revenue may be solid, the brand may be strong, and headcount may keep rising. But inside, there can be serious operational problems. Reppel points to examples that many engineers will recognize: build pipelines that only one original author can run, deployments so fragile that a senior engineer must always stay close, and internal documentation so old that it is almost useless. When business results still look fine, leaders may assume the foundations are sound. As a result, careful engineering can become a vestigial trait: the ability still exists in theory, but the environment does not reward it in practice.

This creates a difficult situation for people who join from outside. They arrive with fresh eyes and quickly spot risks that others no longer notice. They may suggest standard practices that the wider industry adopted years ago, such as clearer ownership, safer release processes, or more reliable maintenance work. Yet these ideas can be brushed aside as over-engineered, too academic, or out of step with current priorities. In some cases, even well-meant criticism is taken personally because it seems to challenge the identity of the engineers who held the system together during the companyโ€™s rapid growth. That social reaction can be just as powerful as any technical constraint.

One common response is to set up a โ€œcenter of excellence.โ€ On paper, this sounds sensible. A focused group can create standards, review designs, and spread knowledge across teams. However, Reppel warns that this can become a double-edged sword. If too much control is concentrated in one group, the rest of the organization may stop taking responsibility for quality. Engineers begin to feel that excellence belongs somewhere else. Their intrinsic motivation can fade because the important decisions are no longer theirs. In healthy companies, good practice is ambient and distributed across teams. In weaker environments, it gets extracted into a process-heavy function that tries to enforce quality from above.

The broader lesson is that success itself can hide decay. A company does not need to be failing in public to be going blind internally. Good numbers can mask fragile systems, weak hiring signals, and habits that no longer serve the business. For technology leaders, the challenge is to keep a clear view while growth is still strong. That means checking whether teams can explain why they work a certain way, whether new hires bring useful outside perspectives, and whether engineering quality is truly valued rather than praised only in presentations. The risk is not just slower innovation. Over time, competence blindness can make a company less resilient when conditions suddenly change.

๐Ÿ’ฌ Discussion

  1. Do you agree that fast growth can slowly damage engineering standards? Why or why not?
  2. Have you ever seen a team with no outside frame of reference? What problems did it create?
  3. When does a center of excellence help, and when does it become too controlling?
  4. What signs would tell you that a company looks healthy from the outside but is weaker inside?
  5. How can tech leaders protect intrinsic motivation while also improving standards and processes?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
์ด ์ฃผ์ œ๋Š” ๊ธฐ์—…์˜ ์„ฑ๊ณต์ด ์˜คํžˆ๋ ค ๋‚ด๋ถ€ ๊ธฐ์ˆ  ์—ญ๋Ÿ‰์˜ ์•ฝํ™”๋ฅผ ๊ฐ€๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. IT ์‹ค๋ฌด์—์„œ๋Š” ๋น ๋ฅธ ์„ฑ์žฅ ์ค‘์—๋„ ์ฑ„์šฉ ๊ธฐ์ค€, ์šด์˜ ์•ˆ์ •์„ฑ, ๋ฌธ์„œํ™”, ๋ฐฐํฌ ํ’ˆ์งˆ์ด ์‹ค์ œ๋กœ ์œ ์ง€๋˜๋Š”์ง€ ๊ณ„์† ์ ๊ฒ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์™ธ๋ถ€ ๊ด€์ ์„ ๋ฐ›์•„๋“ค์ด๊ณ  ํ’ˆ์งˆ์„ ํŠน์ • ์กฐ์ง์—๋งŒ ๋งก๊ธฐ์ง€ ์•Š๋Š” ๊ตฌ์กฐ๊ฐ€ ์žฅ๊ธฐ์ ์ธ ํšŒ๋ณตํƒ„๋ ฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
Programming

8. A New Layer on Top of Git

๐Ÿ“ Vocabulary

on top of/ษ‘หn tษ‘หp ษ™v/phraseadded to something that already exists and works with it
~ ์œ„์—, ~์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ง๋ถ™์—ฌ
e.g. The company built a new security layer on top of its existing platform.
semantic version control/sษ™หˆmรฆn.tษชk หˆvษห.ส’ษ™n kษ™nหˆtroสŠl/phrasea way of tracking code changes by meaning or structure, not only by lines
์˜๋ฏธ ๊ธฐ๋ฐ˜ ๋ฒ„์ „ ๊ด€๋ฆฌ
e.g. Semantic version control can show which function changed instead of only listing edited lines.
in the weeds/ษชn รฐษ™ wiหdz/phrasetoo focused on small details and unable to see the main point clearly
์„ธ๋ถ€์‚ฌํ•ญ์— ๋„ˆ๋ฌด ํŒŒ๋ฌปํžŒ, ๋ณธ์งˆ์„ ๋†“์นœ
e.g. During the meeting, we got in the weeds and forgot the main design goal.
refactor/riหหˆfรฆk.tษš/verbto improve code structure without changing what the code does
๋ฆฌํŒฉํ„ฐ๋งํ•˜๋‹ค, ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜๋‹ค
e.g. The team decided to refactor the module before adding new features.
gain traction/ษกeษชn หˆtrรฆk.สƒษ™n/phraseto start becoming more popular or accepted
ํƒ„๋ ฅ์„ ๋ฐ›๋‹ค, ์ ์  ์ฃผ๋ชฉ๋ฐ›๋‹ค
e.g. The new testing method began to gain traction after several teams adopted it.
stands out/stรฆndz aสŠt/phraseis easy to notice because it is different or especially interesting
๋‘๋“œ๋Ÿฌ์ง€๋‹ค, ๋ˆˆ์— ๋„๋‹ค
e.g. One feature stands out because it saves developers a lot of review time.
a silver bullet/ษ™ หˆsษชl.vษš หˆbสŠl.ษชt/phrasea simple solution that seems able to solve every problem
๋งŒ๋Šฅ ํ•ด๊ฒฐ์ฑ…, ์€ํƒ„ํ™˜
e.g. AI is useful, but it is not a silver bullet for every engineering task.
lowers the barrier/หˆloสŠ.ษšz รฐษ™ หˆbรฆr.i.ษš/phrasemakes something easier to start or join
์ง„์ž… ์žฅ๋ฒฝ์„ ๋‚ฎ์ถ”๋‹ค
e.g. Good documentation lowers the barrier for new contributors.
carve out a niche/kษ‘หrv aสŠt ษ™ niหtสƒ/phraseto create a special position or role in a market or field
ํ‹ˆ์ƒˆ๋ฅผ ํ™•๋ณดํ•˜๋‹ค, ๊ณ ์œ ํ•œ ์œ„์น˜๋ฅผ ๋งŒ๋“ค๋‹ค
e.g. The startup carved out a niche by focusing on tools for code review.
staple/หˆsteษช.pษ™l/nounsomething that becomes a regular and necessary part of daily use
์ฃผ์š” ์š”์†Œ, ํ•„์ˆ˜ ๋„๊ตฌ
e.g. Version control is a staple of modern software development.

๐Ÿ“– Article

Git is one of the most widely used tools in programming, but it still describes change mainly by lines of text. For many developers, that can be hard to follow in large projects. A new open-source tool called sem tries to solve that problem by adding semantic version control on top of Git. In simple terms, it focuses on code entities such as functions, methods, and classes instead of only showing which lines moved or changed. The project comes from Ataraxy Labs and is presented as part of a broader set of tools for coding agents.

The basic idea is easy to understand. When a developer runs a normal Git diff, the output usually shows added and deleted lines. That is useful, but it can also leave people in the weeds when a refactor moves code around without changing the real behavior. sem parses source code with tree-sitter, a parsing system that can understand programming language structure, and then extracts named entities from the code. According to the project page, it supports 28 languages through tree-sitter. As a result, the tool can say that a specific function was modified or that a class was added, which is often more meaningful than a raw line-by-line view.

This shift could gain traction because modern development is becoming more complex. Teams now work across many repositories, languages, and services, and they often depend on automation. In that setting, understanding the impact of a code change quickly is valuable. sem does not try to replace Git. Instead, it sits on top of it and adds another layer of analysis. The repository also describes features such as entity-level diffs, blame, and impact analysis. That could be useful for engineers who want to know not only what changed, but also which parts of a system may be affected by a particular edit.

The project says it is built for coding agents, and that point stands out. As AI tools become more common in programming, they need cleaner ways to read and reason about code history. A line-based diff can be noisy, especially after formatting changes or large refactors. Entity-level information may give agents and human developers a more precise view of what happened. Still, this is not a silver bullet. Parsing code across many languages and edge cases is difficult, and any semantic tool depends on how well it recognizes structure in real-world repositories. If the parser misses something, the semantic view may also be incomplete.

There are also practical questions about workflow. sem is designed to work in existing Git repositories with no setup, which lowers the barrier to trying it. The project offers several installation options, including a shell script, package managers, an npm wrapper, building from source with Rust, and Docker. At the same time, developers will want to know how smoothly it fits into daily review habits, team policies, and existing automation. The project mentions cloud-backed queries as opt-in for each repository and says logging in does not automatically upload a repository or send a query. That consent model may reassure users who are cautious about privacy.

More broadly, sem reflects a larger trend in developer tools: moving from text-level operations toward structure-aware ones. For years, programmers have accepted line diffs because they are simple and universal. But as codebases grow and AI enters the picture, that old model may start to show its limits. A tool like sem could carve out a niche among developers who want better insight into changes without abandoning Git. Whether it becomes a staple will depend on accuracy, language coverage, and how much value teams see in semantic history compared with the familiar line-based approach.

๐Ÿ’ฌ Discussion

  1. When you review code changes, do you prefer line-based diffs or a higher-level summary by function or class? Why?
  2. Have you ever had trouble understanding a large refactor in Git? What information would have made the review easier?
  3. Do you think semantic tools will become a staple in AI-assisted programming workflows? Why or why not?
  4. What trade-offs do you expect between a simple universal tool like Git diff and a structure-aware tool like sem?
  5. How important is privacy and consent when a developer tool offers cloud-backed features for repository analysis?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
sem์€ Git์˜ ์ค„ ๋‹จ์œ„ ๋ณ€๊ฒฝ ์ถ”์  ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•ด ํ•จ์ˆ˜ยทํด๋ž˜์Šค ๊ฐ™์€ ์ฝ”๋“œ ๊ตฌ์กฐ ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ์„ ์ดํ•ดํ•˜๋ ค๋Š” ํ๋ฆ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ๋ฆฌํŒฉํ„ฐ๋ง ๋ฆฌ๋ทฐ, ์˜ํ–ฅ๋„ ํŒŒ์•…, AI ์ฝ”๋”ฉ ๋„๊ตฌ์™€์˜ ์—ฐ๊ณ„ ๊ฐ€๋Šฅ์„ฑ์„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋™์‹œ์— ์ •ํ™•์„ฑยท์–ธ์–ด ์ง€์›ยทํ”„๋ผ์ด๋ฒ„์‹œ ๋ชจ๋ธ์„ ํ•จ๊ป˜ ๊ฒ€ํ† ํ•˜๋Š” ์‹œ๊ฐ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
Tech

9. Why You Donโ€™t Need to Know Every Line

๐Ÿ“ Vocabulary

push back against/pสŠสƒ bรฆk ษ™หˆษกenst/phraseto oppose an idea or argue against it
โ€ฆ์— ๋ฐ˜๋Œ€ํ•˜๋‹ค, ๋ฐ˜๋ฐ•ํ•˜๋‹ค
e.g. Several engineers pushed back against the plan to rewrite the whole product.
mental model/หˆmen.tษ™l หˆmษ‘ห.dษ™l/nounan internal picture of how something works
๋ฉ˜ํƒˆ ๋ชจ๋ธ, ๋จธ๋ฆฟ์† ์ž‘๋™ ๋ฐฉ์‹
e.g. A clear mental model helps developers debug complex behavior.
interpret/ษชnหˆtษห.prษ™t/verbto understand the meaning of something
ํ•ด์„ํ•˜๋‹ค, ์ดํ•ดํ•˜๋‹ค
e.g. It was difficult to interpret the old code without comments.
goes too far/ษกoสŠz tuห fษ‘หr/phrasebecomes too extreme or unreasonable
์ง€๋‚˜์น˜๋‹ค, ๋„๋ฅผ ๋„˜๋‹ค
e.g. The security policy is useful, but some staff think it goes too far.
non-starter/หŒnษ‘หn หˆstษ‘หr.tฬฌษš/nounan idea or plan that has no chance of succeeding
์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ์ผ, ์• ์ดˆ์— ์•ˆ ๋˜๋Š” ๊ณ„ํš
e.g. Replacing everything at once was a non-starter for the team.
wipe the slate clean/waษชp รฐษ™ sleษชt kliหn/phraseto start again from the beginning with no past problems
๊ธฐ์กด ๊ฒƒ์„ ๋‹ค ์ง€์šฐ๊ณ  ์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๋‹ค
e.g. The company wanted to wipe the slate clean, but the legacy system was too important.
pick up the pieces/pษชk สŒp รฐษ™ หˆpiห.sษชz/phraseto deal with the problems left after something went wrong
๋’ค์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋‹ค, ์ˆ˜์Šตํ•˜๋‹ค
e.g. After the original team left, a new group had to pick up the pieces.
workable/หˆwษห.kษ™.bษ™l/adjectivepractical and able to be used successfully
์‹คํ–‰ ๊ฐ€๋Šฅํ•œ, ์‹ค์šฉ์ ์ธ
e.g. They did not have perfect knowledge, but they had a workable plan.
out of the weeds/aสŠt ษ™v รฐษ™ wiหdz/phraseaway from confusing small details
์„ธ๋ถ€ ํ˜ผ๋ž€์—์„œ ๋ฒ—์–ด๋‚˜, ํฐ ํ๋ฆ„์—์„œ
e.g. Managers should stay out of the weeds and focus on major risks.
sloppy thinking/หˆslษ‘ห.pi หˆฮธษชล‹.kษชล‹/phrasecareless and unclear reasoning
ํ—ˆ์ˆ ํ•œ ์‚ฌ๊ณ , ๋Œ€์ถฉ ํ•˜๋Š” ์ƒ๊ฐ
e.g. Partial knowledge is acceptable, but sloppy thinking is still dangerous.

๐Ÿ“– Article

Many engineers are told that they should fully understand their codebase before making serious changes. That idea sounds reasonable, especially in a small product with a stable team. In that kind of environment, a deep shared understanding can lead to careful design and fewer surprises. But a recent essay argues that this view does not fit every workplace. In large organizations, engineers often work inside huge systems built over many years by many different teams. In those cases, complete understanding is not a realistic goal, and partial understanding may be the normal way to do good work.

The essay pushes back against an older and influential idea from computer scientist Peter Naur. In his paper โ€œProgramming as Theory Building,โ€ Naur said that the real product of programming is not just the code itself. It is also the teamโ€™s mental model: their intuitive sense of how the program works and why it was built that way. Code and documentation capture only part of that knowledge. If the team disappears, the remaining code can be hard to interpret. This is a powerful point, and many engineers still feel that strong ownership depends on this kind of shared theory.

However, the essay says this argument goes too far when it suggests that lost understanding cannot be rebuilt from the code. In very large systems, starting over is often a non-starter. Old products usually contain countless edge cases, special rules, and historical quirks that were added for real users over time. Even a highly skilled team would struggle to rebuild all of that behavior from scratch. That is why successful rewrites usually do not wipe the slate clean. Instead, teams carve out smaller parts, isolate them, and replace them step by step while the rest of the system keeps running.

The author also notes that abandoned codebases are often brought back to life. In a big company, team turnover can leave a service with nobody who truly knows it well. A few people leave, maintenance slows down, and suddenly the remaining engineers have to pick up the pieces. According to the essay, this happens more often than many developers admit. Yet engineers still manage to take ownership of neglected systems, read the code, run tests, inspect behavior, and gradually form a workable understanding. It may be incomplete, but it is often enough to fix bugs, improve reliability, and safely add features.

This view has practical consequences for engineering culture. If full understanding is impossible in some environments, then teams should not pretend otherwise. Instead, they should create conditions that support partial understanding. That can include clear interfaces between components, better logs, stronger tests, readable change histories, and documents that explain why a system exists. It also means accepting that many engineers will go deep only in their local area and stay out of the weeds elsewhere. This approach can feel less elegant than total mastery, but it matches the reality of large, fast-moving organizations.

The debate matters because it shapes how teams hire, document, review code, and plan rewrites. If leaders expect every engineer to understand everything, they may set impossible standards and slow work down. On the other hand, accepting partial understanding should not become an excuse for sloppy thinking. Engineers still need discipline, curiosity, and safe ways to learn unfamiliar systems. The essayโ€™s main point is not that understanding does not matter. It is that, in big codebases, useful understanding often comes in layers. You do not need to know every line to make sound decisions, as long as you know enough about the part you are changing and the risks around it.

vocabulary list deliberately stretches the learner with richer, less common words, idioms and natural collocations (C1-C2). This learner already knows everyday English and common tech jargon. Topics span all of tech โ€” AI, security, cloud, hardware, programming, science and more โ€” not limited to any single vendor. You write in the style of Engoo Daily News but with a deeper, feature-length article, a vocabulary list, and discussion questions. You always return STRICT JSON only.

๐Ÿ’ฌ Discussion

  1. Have you ever worked on a codebase that nobody fully understood? What was that experience like?
  2. Do you agree that partial understanding is often enough in large systems? Why or why not?
  3. What practices can help engineers work safely when team turnover is high?
  4. When is a full rewrite a good idea, and when is it too risky?
  5. In your team, how do you balance deep expertise in one area with general knowledge of the whole system?
์˜ค๋Š˜์˜ ํ•™์Šต ํฌ์ธํŠธ
๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์™„๋ฒฝํžˆ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ํ•„์š”ํ•œ ๋ฒ”์œ„๋ฅผ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋” ํ˜„์‹ค์ ์ด๊ณ  ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ๋ฌธ์„œ, ํ…Œ์ŠคํŠธ, ๋กœ๊ทธ, ๋ชจ๋“ˆ ๊ฒฝ๊ณ„ ๊ฐ™์€ ์žฅ์น˜๊ฐ€ ๋ถ€๋ถ„์  ์ดํ•ด๋ฅผ ๋ณด์™„ํ•ด ์ฃผ๋ฏ€๋กœ, โ€˜์™„์ „ํ•œ ์ดํ•ดโ€™๋ณด๋‹ค โ€˜์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—… ๋ฐฉ์‹โ€™์„ ๋งŒ๋“œ๋Š” ๊ด€์ ์ด ํ•ต์‹ฌ ํ•™์Šต ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.