This site uses cookies.
Some of these cookies are essential to the operation of the site,
while others help to improve your experience by providing insights into how the site is being used.
For more information, please see the ProZ.com privacy policy.
Korean to English: “Dive into Design Patterns” by Alexander Shvets (A Software Engineering Book) General field: Tech/Engineering Detailed field: IT (Information Technology)
Source text - Korean Title: “Dive Into Design Patterns”
Author: Alexander Shvets
Description: This is a software engineering book. You can see my name “Woo J. Hwang” on page 3 in the Korean version of this book as the sole and official translator of this book:
English: https://refactoring.guru/files/design-patterns-en-demo.pdf
Korean: https://refactoring.guru/files/design-patterns-ko-demo.pdf (see Page 3)
Features of Good Design
Before we proceed to the actual patterns, let’s discuss the process of designing software architecture: things to aim for and things you’d better avoid.
Code reuse
Cost and time are two of the most valuable metrics when developing any software product. Less time in development means entering the market earlier than competitors. Lower development costs mean more money is left for marketing and a broader reach to potential customers.
Code reuse is one of the most common ways to reduce development costs. The intent is pretty obvious: instead of developing something over and over from scratch, why don’t we reuse existing code in new projects?
The idea looks great on paper, but it turns out that making existing code work in a new context usually takes extra effort. Tight coupling between components, dependencies on concrete classes instead of interfaces, hardcoded operations—all of this reduces flexibility of the code and makes it harder to reuse it.
Using design patterns is one way to increase flexibility of software components and make them easier to reuse. However, 33 Software Design Principles / Features of Good Design this sometimes comes at the price of making the components more complicated.
Here’s a piece of wisdom from Erich Gamma, one of the founding fathers of design patterns, about the role of design patterns in code reuse:
“I see three levels of reuse.
At the lowest level, you reuse classes: class libraries, containers, maybe some class “teams” like container/iterator.
Frameworks are at the highest level. They really try to distill your design decisions. They identify the key abstractions for solving a problem, represent them by classes and define relationships between them. JUnit is a small framework, for example. It is the “Hello, world” of frameworks. It has Test, TestCase, TestSuite and relationships defined.
A framework is typically larger-grained than just a single class.
Also, you hook into frameworks by subclassing somewhere.
They use the so-called Hollywood principle of “don’t call us, we’ll call you.” The framework lets you define your custom behavior, and it will call you when it’s your turn to do something. Same with JUnit, right? It calls you when it wants to execute a test for you, but the rest happens in the framework.
There also is a middle level. This is where I see patterns. Design patterns are both smaller and more abstract than frameworks. They’re really a description about how a couple of classes can relate to and interact with each other. The level of reuse increases when you move from classes to patterns and finally frameworks.
What is nice about this middle layer is that patterns offer reuse in a way that is less risky than frameworks. Building a framework is high-risk and a significant investment. Patterns let you reuse design ideas and concepts independently of concrete code.”
Translation - English 제목: “디자인 패턴에 뛰어들기”
저자: 알렉산더 슈베츠
설명: 이 책은 소프트웨어 공학 서적입니다. 한국어판 3페이지에 제 이름 “Woo J. Hwang(황우진)”이 이 책의 유일한 공식 번역자로 기재되어 있습니다:
영어판: https://refactoring.guru/files/design-patterns-en-demo.pdf
한국어판: https://refactoring.guru/files/design-patterns-ko-demo.pdf (3페이지 참조)
좋은 디자인의 특징
실제 패턴에 대해 논의하기 전에 소프트웨어 아키텍처를 설계하는 과정과 그 과정에서 목표로 삼거나 피해야 할 사항들에 대해 논의해 보겠습니다.
코드 재사용
모든 소프트웨어 제품을 개발할 때 가장 중요한 두 가지 지표는 비용과 시간입니다. 개발 시간이 짧으면 경쟁자들보다 일찍 시장에 진입할 수 있으며, 개발 비용이 낮아지면 마케팅에 더 많은 자금을 투자하여 더 광범위한 잠재 고객들에 접근할 수 있습니다.
코드 재사용은 개발 비용을 줄이는 가장 일반적인 방법의 하나입니다. 코드를 재사용하는 의도는 상당히 명백합니다. 무언가를 계속 처음부터 다시 개발하지 말고, 기존 코드를 새
프로젝트에 다시 사용하자는 것이죠.
이 개념은 이론상으로는 훌륭해 보입니다. 그러나 새로운 상황에서 기존 코드를 작동하게 하는 것은 쉽지 않습니다. 왜냐하면 컴포넌트 간의 단단한 결합, 인터페이스 대신 구상 클래스들에 대한 의존 관계, 하드코딩 된 작업과 같은 여러 가지 요인들이 코드의 유연성을 감소시키고 재사용을 어렵게 만들기 때문입니다.
디자인 패턴을 사용하는 것은 소프트웨어 컴포넌트들의 유연성을 높이고 재사용하기 쉽게 만드는 한 가지 방법입니다. 그러나 이 방법은 때때로 컴포넌트들을 더 복잡하게 만듭니다.
다음은 디자인 패턴의 선구자 중 한 명인 에릭 감마의 코드 재사용에서의 디자인 패턴의 역할에 대한 견해입니다.
“저는 재사용을 세 가지 수준으로 이해합니다.
가장 낮은 수준에서는 클래스들을 재사용합니다. 그 예로는 클래스 라이브러리, 컨테이너 및 컨테이너/반복자와 같은 어떤 클래스 '팀'이 있습니다.
반면 프레임워크들은 최고 수준에 있으며, 이들은 당신의 디자인 결정들을 정제하려고 열심히 노력합니다. 프레임워크들은 문제를 해결하기 위한 핵심 추상화들을 식별한 후, 해당 추상화들을 클래스들로 표현하고 그들 사이의 관계들을 정의합니다. 예를 들어 JUnit은 작은 프레임워크이며, 프레임워크의 'Hello, world'라고 간주할 수 있습니다. 이 프레임워크에는 Test, TestCase, TestSuite 및 관계들이 정의되어 있습니다.
프레임워크는 일반적으로 단일 클래스보다 입자들이 큽니다. 또한 프레임워크에 연결할 때는 어딘가를 서브클래싱하여 연결합니다. 그들은 '전화하지 마, 전화할께'라는 이른바 헐리우드 원칙을 사용합니다. 프레임워크는 사용자 지정 행동을 정의할 수 있도록 해주고, 당신이 어떤 작업을 수행할 차례가 되면 당신을 호출할 것입니다. JUnit도 마찬가지죠? JUnit도 당신을 위해 테스트를 실행하고 싶을 때는 당신을 호출하지만, 나머지는 프레임워크에서 작동합니다.
중간 수준의 재사용도 있습니다. 저는 패턴이 이 수준에 속한다고 생각합니다. 디자인 패턴은 프레임워크보다 더 작고 추상적입니다. 디자인 패턴은 몇 개의 클래스들이 서로 어떻게 관련되어 있으며, 상호 작용할 수 있는지에 대한 상세한 설명입니다. 클래스에서 패턴으로, 그리고 마지막으로 프레임워크로 이동할수록 재사용 수준이 높아집니다.
이 중간 수준 계층의 좋은 점은 패턴이 종종 프레임워크보다 덜 위험한 방식의 재사용을 제공한다는 점입니다. 프레임워크를 구축하는 것은 위험이 높을 뿐만 아니라 상당한 투자가 들어가는 일입니다. 패턴을 사용하면 구상 코드와 관계 없이 디자인 아이디어들과 개념들을 재사용할 수 있습니다.”
More
Less
Experience
Years of experience: 6. Registered at ProZ.com: Nov 2025. Became a member: Dec 2025.
My name is Woo J. Hwang. I am native fluent in both English and Korean with no accent in both languages. This fact can easily be verified via an audio or video call with a native speaker of your choice.
Being Bi-Native in both langauges, I am currently a freelance gaming translator for Tencent, coordinate with about a dozen translation agencies, and am the sole translator of the programming book "Dive into Design Patterns" by Alexander Shvets. I've been a legal, medical, patent, publishing, software, gaming and e-course translator since 2020 (although I've translated material from many other disciplines).
How did I acquire such linguistic abilities?
Born to Korean parents, I spent my early childhood (ages 5 to 9) fully immersed in English at the American School of Warsaw, followed by rigorous Korean academic training (ages 9 to 13) in South Korea. From age 13 to 28, I lived in the United States, where I worked for many years as a certified paralegal drafting hundreds of high-stakes legal briefs requiring absolute clarity and precision, submitted under attorneys' names in court cases. (Writing Samples available upon request).
Since I turned 28, I moved to the carribeans and started exploring remote work options. After working as a web developer, programming, for example, shadowslove.com, the website for one of the largest lifestyle clubs in Maryland, I realized that I was born to be a technical and legal translator!
My unique background and extensive training in legal brief-writing and programming has equipped me with rare fluency, cultural nuance, and proven ability to produce clear, accurate, publication-ready text in both languages: qualities that have enabled me to excel as a top-tier academic and technical translator from the start of my translation career in 2019.
I then was selected as the sole and official translator for the book "Dive Into Design Patterns" by Alexander Shvets. Over 50+ highly qualified applicants competed for the position, and I was selected due to my understanding of programming and my linguistic abilities. Thereafter, I cooperated with Alconost since 2021 to present time and a few other select clients.
I also freelanced on UpWork where I became Top Rated Plus with nothing but 5 star reviews. Recently, in 2025, I scored a 100 TQI (Translation Quality Index) score when tested by Alconost. I am currently cooperating with various translation agencies and individual clients and decided to join ProZ to connect with potential clients and to showcase some of my skills. I thereafter started cooperating with Tencent as a freelance gaming translator and decided to open a ProZ profile to get reviews.
www.koreanenglishnative.com
If you have any questions, or just want to meet and greet, don't hesitate to contact me.