- Work
How I fixed the Google Spreadsheet JWT 403 PERMISSION_DENIED error
On an Autowini project, I got a PERMISSION_DENIED error while fetching multilingual data from a Google spreadsheet with Node.js.
- Work
Setting Up Prettier with Automatic Import Sorting
I added Prettier to the WiniLogis project to unify code style, and a missing import sorting plugin kept Prettier from running at all.
- Work
Why Enter sends a chat message twice when typing Korean in a <textarea />
I first built the chat input this way: when the user types a message in a <textarea /> and presses Enter, it sends the message and clears the input.

- Work
Optimizing Build Size for React i18n Translations, Part 1
While developing the Autowini service, I had adopted react-i18next for multilingual (i18n) support.

- Work
Building a Scroll To Top Button Optimized with es-toolkit's throttle
A few times now, I have built the Scroll To Top button you often see in the bottom-left or bottom-right corner of the screen.

- Work
Building Autowini's like feature with TanStack Query and Optimistic Update
Optimistic Update is a way of updating the UI before the server responds, on the assumption that the state update will succeed.

- Work
Fixing WiniLogis blog readability with a React-Quill text editor
WiniLogis is a platform that offers booking services for global trade, and it runs a blog.

- Work
Improving Web Performance with a Next-Gen Image Format (WebP)
To improve the WiniLogis main page, I checked its Core Web Vitals with Google Lighthouse, and one main issue it flagged was its PNG and JPG images.

- Work
Improving an Existing Slider's Performance with React-Swiper
The Slider on the main page of the AuctionWini Seller site was built by looping over the data with map and moving it 1px at a time, continuously.

- Work
How to tell a page navigation from a reload with React & TypeScript
I had to write logic that branches depending on whether the user reached a page in the browser by navigating to it or by reloading it.

- Work
Cross Browsing: Fixing the Keyboard Covering the Screen on iOS
While developing the Autowini claim project, I had to build a responsive web app in React so the chat UI worked well on web, mobile, and in the app.

- Work
Optimizing SPA (Single Page Application) Page SEO with React Helmet
When I recently built the Ocean Freight page that lists Spot freight rates, I used React Helmet to manage its meta tags and also paid attention to its URL.

- Work
Fixing CSS that breaks in Safari
I was put in charge of the publishing work (building the HTML and CSS markup) for a really important project.

- Work
Implementing Text ReadMore in WiniLogis Our Shipment
First, the spec asked that on mobile screens a Read more button appear when the text runs to 3 lines or more.

- Work
Preventing Keyboard Input Events in MUI DatePicker
An admin feature used MUI DatePicker to select dates, and after an absurd date was typed in, the feature that sets today's date did not work properly.

- Work
The world's simplest Skeleton UI with only HTML & CSS
Today a backend developer at work asked me to make a Skeleton UI as simply as possible, so I built one as quickly as I could.

- Work
React DatePicker date & time saving error
I was taking date and time input with React DatePicker, and picking a time after picking a date reset the date I had picked before.

- Work
Five Months of Challenge: An Outstanding Employee Award, Joy and Resolve
It has been five months since I joined the company on July 3, 2023, and I received the Outstanding Employee Award.

- Work
How to use ``(template literals) correctly in JSP
Template literals did not work properly, and my code almost became long and messy, but a Google search showed me why they don't work in JSP and how to fix it.

- Work
Using a Regex to Allow Only Numbers in input type = "text"
Today at work, while validating an input that takes a car's paint film thickness, I had the following conditions.
