이 글은 제가 쓴 ‘Who Is the First-Class Citizen In Programming World?’ 을 번역하였습니다.

Intro

프로그래밍 언어에서 “일급(First-class)” 라는 말을 들어본 적이 있으신가요? 자바스크립트, 스칼라 또는 일급 함수 사용을 권장하는 다른 언어를 사용하는 중이라면, 이 개념에 대해 친숙하실 것입니다.


Intro

Have you heard of “first-class” in your programming language? If you are using Javascript, Scala or some other languages that encourage you to use first-class functions, you might be familiar with the concept. Otherwise, you might not.


이 글은 Javarevisited에 실린 저의 [Java] Concurrent Programming 을 번역하였습니다.

사용자들은 시스템이 동시에 한 가지 이상의 일을 할 수 있다고 확신한다. 그들은 파일을 다운로드하면서, 출력하기 위해 걸어놓은 프린트 큐를 관리하고, 오디오를 틀어 놓으면서 워드로 작업을 계속할 수 있다고 생각한다. 이러한 것들을 가능하게 만드는 것이 바로 동시성 소프트웨어이다.

Oracle

동시성 소프트웨어란 무엇인가?

오라클에서 나온 자바 튜토리얼의 정의보다 동시성 프로그래밍을 잘 정의내린 글은 찾기 힘듭니다. 동시성 프로그래밍은 ‘겹쳐진 시간 동안 돌아가는 여러 개의 동작 시퀀스’ 라고 정의됩니다. 자바에서는 Thread 클 …


This is the translation of ‘Why Is One Heavyweight Query Super Faster Than Multiple Lightweight Queries?’

Image : https://fritsahlefeldt.com/

Intro

빠른 쿼리를 쓸 줄 아는 것은 백엔드 엔지니어에게 꼭 필요한 능력 중 하나입니다. 쿼리가 간단할 수록, DB는 더 빨리 데이터를 가져올 수 있기 때문입니다. 그럼에도 불구하고, 대부분의 회사는 DB가 끔찍해질 정도로 방치하고 어지럽혀두어서 여러 불필요한 join 문을 쓰지 않고서는 데이터를 가져오는 것이 거의 불가능해 질 수도 있습니다. 그리고 이것이 제가 며칠 전 경험한 일이죠.


Previous summary on this book: The Art Of Readable Code — 1. Surface-Level Improvements

Image: https://uxmastery.com/wp-content/uploads/2013/09

Knowing What To Comment

The purpose of a comment is to help the reader know what the writer knew when writing the code. In this perspective, a good comment contains an important thought you had as you were writing the code.

Recording Your Thoughts

Include “Director Commentary”: A “Director Commentary” mentioned here is referred to the commentary containing a director’s insights and rememberable stories to help you understand how his/her film was made. Like this, you need to comment on your code to record insights about the code.

// This class is getting…

Image : https://fritsahlefeldt.com/

Intro

Writing a fast query is one of the qualifications a backend engineer is required to get. It’s because, simply, the simpler it is, the faster the database could load data. Nevertheless, your company might often have its database left to be terrible and messy so that it’s almost impossible to select data without using one or more join statements. This is what I encountered a couple of days ago.


Trigger For Generics

Before Java 5 was released, many Java developers are always aware of type casting problems in their code. For example, in the sample code written below, a list contains two different types of data; one is a string and the other is an integer. Even though no problem is indicated at the compile time, the JVM would show ClassCastException runtime in executing the loop since casting the Integer to String is not acceptable. Imagine that your projects are made of thousands of code where every collection type class does not bind their input data into a specific type. Then, you…


Image : crazyegg.com

How Long Should A Name Be?

Whether you’re naming a variable, a method or a class, a lot of information can be conveyed into what you make, even though there isn’t much room. Some specific principles apply to pack as much information into your names as possible, most of which are already commonly accepted to programmers. For example, it would be better to use specific and concrete words like Fetch or Download , instead of Get , when your method is intended to retrieve a page from a local cache, from a database, or from the Internet?

Also, you need to avoid generic names like tmp


What Is Annotation?

Annotation simply means of Java types with ‘@’ symbol. As a form of metadata, it provides additional data to the code it is bound to. It has been supported since the Java 1.5 release, so as to generate numerous boilerplate code automatically. In addition, it could be more convenient and less error-prone if the side files of APIs are managed in parallel with programs, like a BeanInfo class of Java Beans. Like these, annotations have the following usages:

  • Information for compiler — Annotations can be used by the compiler to detect or suppress warnings.
  • Compile-time and deployment-time processing — Tools…

Minho Jang

Backend Developer, Political Scientist, Writer, Tech Geek and Lifelong Learner

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store