전체 글

개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :)
· Book
1장. 웹 성능이란 무엇인가? 웹이란? 전 셰계 사람들이 인터넷에 연결된 컴퓨터를 통해 수 많은 정보를 공유 할 수 있는 인터넷의 대표적인 서비스 물리학자들 간의 공동 연구를 진행하고 결과를 공유하기 위해 팀 버너스 리 등이 개발 이전에도 TCP/IP 또는 UDP를 통해 클라이언트-서버 간 네트워크 통신 또는 소켓 네트워크 기술을 통해 데이터 교환이 가능했지만, 웹은 페이지 기반으로 문서 읽듯 브라우저를 통해 정보를 교환하는 방법 즉, 하이퍼텍스트를 바탕으로 관련 있는 문서들을 연결한 집합체 따라서 사용자는 서로 연관되어 있는 페이지를 연결해 웹 페이지의 하이퍼링크를 통해 다른 페이지로 이동하거나 사용자 정보를 입력할 수 있음. 웹의 대표적인 요소 URL(Uniform Resource Locator) 인..
· Backend/Java
Java8에서 함수형 스타일로 리팩토링 : 레거시에서 람다로 By Venkat Subramaniam Java8에는 함수형 프로그래밍 기능이 추가되었지만, 실제로 함수형 프로그래밍으로 작성하기 위해서는 가이드가 필요할 수 있습니다. https://pragprog.com/newsletter/ 자바에서 우리는 명령형 스타일을 사용해 객체지향 코드를 작성하였습니다. Java8에선 함수형 스타일로 코드를 작성할 수 있게 되었습니다. 기존 모든 코드를 모두 변환할순 없겠지만 버그를 수정하면서 기존코드를 리팩토링 할때마다 함수형 스타일을 사용할 수 있습니다. 이 글에서 우리는 레거시 코드를 즉시 람다를 사용할수 있는 방법과 왜 변경해야 하는지를 알아보도록 하겠습니다. 왜 함수형 스타일인가? 명령형 프로그래밍에서 우리..
React에 StoryBook을 입혀보자. 도입 최근 회사에서 webpack의 Module Federation을 도입하게 되면서 React 프로젝트를 도입할 수 있는 기회가 생기게 되었다. 아울러 그에 맞춰서 백지에서 시작하는 프로젝트를 할 수 있게 되었는데, 그에 맞춰 Storybook을 세팅한 이야기를 작성해보려고 한다. React 프로젝트 생성 React의 간단한 프로젝트를 생성하기 위해 create-react-app 을 사용해 간단히 만들어 본다. npx create-react-app react-storybook-playround Storybook 구축 storybook은 아래 명령어로 간단히 구축이 가능합니다. npx storybook init 그렇다면 아래와 같은 의존성과 스크립트가 포함됩니다..
· Backend/Java
9 tips to Increase your Java performance(자바 성능을 향상시키기 위한 9가지 팁) 어떤 바보라도 컴퓨터가 이해할 수 있는 코드를 작성할 수 있습니다. 좋은 프로그래머는 인간이 이해할 수 있는 코드를 작성합니다. - 마틴 파울러 그러나 고성능 코드를 작성하고 싶은 마음은 어느 개발자나 가지고 있습니다. Java 코드를 더 빠르게 실행하는 방법을 알아보도록 하겠습니다. 참고 : JVM은 효과적으로 코드를 최적화 합니다. 일반적인 사용 사례에서 최적화할 필요는 없습니다. 그러나 JVM에 최대 성능을 내기를 원합니다. 여기에 초점을 맞춥니다. 모든 테스트는 Mackbook Pro 2017 노트북의 OpenJDK 12.0.1에서 수행되었습니다. 1. Instantiate in co..
10 JavaScript concepts for React beginners(React 초보자를 위한 10가지 JavaScript 개념) React는 JavaScript 프론트엔드 라이브러이며, 시작 하기 위해서는 JavaScript를 배워야 합니다. 그러나 JavaScript는 거대한 개념의 언어이기 떄문에 모든 것을 배우기에는 어렵습니다. 그래서 이 글에서는 React를 배우기 위해 알아야 하는 10가지의 JavaScript 개념에 대해 다룹니다. ✨ JavaScript이란? JavaScript는 웹 페이지용 높은 수준의 스크립트 언어입니다. 1995년 Brendan Eich에 의해 만들어졌습니다. 처음엔 JavaScript는 interactive(상호작용하는) 웹페이지로 만드는 것이 목표였습니다. ..
· Lecture
서론 **[스터디/12기] 단순 CRUD는 그만! 웹 백엔드 시스템 구현(Spring Boot) 이 스터디를 참여해서 쓴 글입니다. 2주차 세션에 대한 내용은 아래와 같습니다. 🗓 2주차 인증과 인가(Authentication and Authorization) 2주차 미션 핵심 ✅ Spring Security를 활용한 인증(Authentication) ✅ 서비스 확장 시 Session 기반 사용자 인증의 문제점 알기 ✅ 장애 대응을 위한 분산서비스 구조 ✅ Stateless 아키텍처와 JWT(JSON Web Token) 우리는 보통 웹 백엔드 공부를 시작할 때, 쿠키나 세션을 통한 인증 처리 위주로 배우곤 한다. 그런데 실무에선 서비스가 커지면서 이용자가 많아지면 세션이 무척 바빠지면서 서버가 뻗을 수 ..
· Lecture
1주차 미션 정리 서론 *[스터디/12기] 단순 CRUD는 그만! 웹 백엔드 시스템 구현(Spring Boot) 이 스터디를 참여해서 쓴 글입니다. 1주차 미션에 대한 내용은 아래와 같습니다. 간단한 CRUD 만들어보기 1주차 미션에서 적용했던 부분과 배웠던 부분에 대해서 이야기를 해보려고 합니다. 기술 스택 Java 11 Maven Spring Boot 2.6.3 Spring Web Spring JDBC Spring Validation 배운 점 Email VO 분리 User 도메인에 있는 email은 validation이 필요하다. 이것은 User의 책이밍라기 보단 Email 객체의 책임이라고 생각이 들었다. 따라서 해당 필드를 VO로 분리하였다. public class Email { private s..
· Book
2장. 운영 서버 환경의 구성 2.1. 운영 서버 아키텍처의 이해 단일 서버 요청을 보내는 클라이언트와 요청을 처리하는 서버가 한 대가 있다. 데이터베이스와 애플리케이션이 하나의 서버에서 실행되고 있다. 따라서 별도의 네트워크설정을 할 필요가 없다는 장점이 있다. 단점 전체 서비스에 장애가 생길 확률이 높다 데이터베이스와 애플리케이션이 자원을 공유하기 때문에 하나라도 자원을 모두 사용하거나 장애가 발생하면 전체 서비스의 문제가 발생한다. 서버 자원을 효율적으로 사용하기 어렵다 애플리케이션과 데이터베이스는 각 속성에 따라 더 중요한 자원의 종류나 최적화를 위해 필요한 OS 설정이 다를 수 있다. 둘다 만족하기 위해 필요 이상으로 고사양 서버를 사용해야 한다. 보안성이 떨어진다 데이터베이스는 보안상 포트나 ..
· Book
1장. 운영 서버와 AWS 소개 1.1. 운영 서버 실세 사용자들을 대상으로 서비스하는 서버 트래픽 대응, 빠른 응답 속도, 높은 가용성 보장이 중요 1.2. 운영 서버 관리의 세 단계 환경 구성 서비스할 코드를 구동시킬수 있는 서버 인프라 구축 코드 배포 구성환 환경에 최신 버전 코드를 빠르고 안전하게 배표 모니터링 안정적인 서비스 운영을 위해 서버와 코드에 어떤 이상이 없는지 바로 파악하고 대응할 수 있게 도와주는 것 1.3. AWS Amazon Web Service는 2006년 미국 기업 아마존에서 만든 클라우드 서비스 플랫폼이다. 클라우드 서비스 플랫폼을 써야 하는 이유 과거에는 아래와 같이 인프라를 운영했다 서버를 직접 구매한 후 회사나 IDC에 설치 관리 서버뿐만 아니라 수많은 인프라(DB, ..
· Lecture
1주차 세션 정리 서론 **[스터디/12기] 단순 CRUD는 그만! 웹 백엔드 시스템 구현(Spring Boot) 이 스터디를 참여해서 쓴 글입니다. 1주차 세션에 대한 내용은 아래와 같습니다. 🗓 1주차 내 손으로 직접 Maven 기반 Spring Boot 프로젝트 셋업하기 1주차 미션 핵심 ✅ Spring 주요 개념 (이미 알아도 다시)제대로 짚고 가기 ✅ Spring Boot 개론(Spring 3.* 버전만 사용해본 경우, 필수 내용) ✅ Maven 프로젝트 직접 세팅 IDE는 IntelliJ, Eclipse 둘 중 본인이 편한 것을 써도 된다. 또한, 프로젝트 셋업은 모두 준비된 것을 주어주지 않는다. 앞으로의 미션 수행을 위해 직접 세팅하는 것 이 중요하다. 매번 누가 던져준 환경에서만 개발해본..
Seyun(Marco)
Enthusiastically, Steady, Slowly