회고/세미나 썸네일형 리스트형 [10분 테크톡] 알렉스, 열음의 멀티스레드와 동기화 In Java 후기 기존에 학부 수업이었던 운영체제론에서 들었던 내용이지만 그때는 정확하게 이해 못하기도 했고 또 유사한 내용이 나오니 턱 막히는 것 같아 동영상을 보고 관련 내용을 좀 정리하려고 한다. 그리고 안에서 비유한 내용이 너무 좋아서 내용을 정리해본다. 목차 공유자원과 임계영역 경쟁상태 원자성과 가시성 동기화 블로킹 논블로킹 스레드 안전한 객체 설계 방법 공유자원과 임계영역 공유자원 : 여러 스레드가 동시에 접근할 수 있는 자원 임계영역 : 공유자원들 중 여러 스레드가 동시에 접근했을 때 문제가 생길 수 있는 부분 경쟁상태 둘 이상의 스레드가 공유자원을 병행적으로 읽거나 쓰는 동작을 할 때 타이밍이나 접근 순서에 따라 실행 결과가 달라지는 상황 아래의 두가지 패턴이 있고 이 경쟁상태를 방지하기 위해서는 원자성과 .. 더보기 토스 SLASH 21 - Micro-frontend React, 점진적으로 도입하기 후기 면접에서도 MSA라는 이야기를 많이 들었는데 MSA란 마이크로 서비스 아키텍처의 준말이다. MSA가 출현하게 된 배경으로는 모놀리틱 아키텍처 형태가 있는데 이는 모듈별로 개발을 하고 개발이 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태를 말한다. 모놀리틱 아키텍처의 경우 소규모 프로젝트에서는 충분히 사용해도 괜찮지만 일정 규모 이상의 서비스, 혹은 수백명 이상의 개발자가 투입되는 프로젝트에서는 한계를 나타낸다. 부분 장애가 전체 서비스 장애로 확대될 수 있고, 한 프레임워크와 언어에 종속적이다. 또 서비스 변경이 어렵고 수정하면 장애의 영향도 파악이 어렵다. 이런 문제점들을 보완하기 위해 MSA가 출현하게 되었다. 이처럼 대규모 프로젝트를 진행하는 곳에서는 Micro하게 프로젝트를 관.. 더보기 [10분 테크톡] 결의 브라우저 렌더링 후기 웹 프론트엔드 개발자라면 브라우저 렌더링이 어떻게 진행되는지 알고 있어야 더욱 효율적이고 성능 친화적(?)으로 시스템을 설계하고 구현할 수 있다고 생각한다. 특히 이전에 렌더링 횟수로 인한 메모리 누수를 막기 위해 많은 노력을 봤었기 때문에 렌더링이 어떻게 진행되는지 알고 있는 것이 매우 중요하다고 느꼈다. 이전과 달리 특히 웹 개발자로 전향해서 준비하고 있는 나에게 브라우저에서 렌더링 과정은 반드시 알아야만 하는 개념인 것이다. 그리고 브라우저가 어떻게 렌더링하는지에 따라 사용자 경험에 많은 영향을 끼치기 때문에 웹 프론트엔드 개발자라면 짚고 넘어가야 한다. 목차 브라우저란? 브라우저란? 브라우저 : html 문서, 이미지, 폰트 등의 사용자가 선택한 자원을 전송 및 표현하는 소프트웨어 e.g. 크롬,.. 더보기 [10분 테크톡] 렉스의 Git 브랜칭 전략 후기 새로운 팀 프로젝트에 앞서 개발자는 2명 뿐이지만 어떤 브랜치 전략을 도입해야할지 고민하던 찰나 잘 정리된 영상을 보게 되어 정리해보았다. 물론 이와 관련해서 검색하면 더 나오긴 하지만 Git 브랜치 전략은 늘 다시 보게 되고, 늘 헷갈리는 것 같다. 다시 한 번 헷갈리지 않고 정확히 이해하기 위해 이번 영상을 정리해본다. 목차 Branch 전략이란? Github flow란? Git flow란? 우린 무엇을 사용해야할까? Branch 전략 평상시 우리의 branch 사용 유형 혼자 개인 프로젝트 개발을 할 때 -> 문제도 자신이, 규칙도 자신이 책임진다 코드의 수정, 기능 개발 등을 할 때만 branch를 여는 유형 하나의 branch만 사용하는 유형 팀으로 프로젝트 개발을 할 때 branch명에서 생성.. 더보기 토스 SLASH 21 - 실무에서 바로 쓰는 Frontend Clean Code 후기 작년 자료긴 하지만 프론트엔드에서도 클린한 코드를 구현해야 나뿐만 아니라 다른 개발자도 코드를 읽고 바로 기능을 이해할 수 있기 때문에 생산성을 더 높일 수 있다고 생각한다. 특히 좋은 개발자의 기준 중 하나로써 빠른 생산성을 강조하는 몇몇 포스팅을 본 적이 있는데 기업 입장에서도, 팀 입장에서도 업무에 교착상태없이 원활하게 업무를 진행하려면 팀원의 생산성 속도를 적절히 조절할 수 있어야 한다. 그러기 위해서는 우선 빠르게 생산성을 올릴 수 있는 방법부터 고안해봐야한다. 빠르게 하는 걸 느리게 하기는 쉬워도 느리게 하는 걸 빨리 하기는 어렵기 때문이다. 토스에서는 이런 생산성을 위해 프론트엔드에서도 클린 코드를 지향했다고 하는 강연이 있어서 보게 되었다. 이번 강연을 보면서 클린 코드의 개념과 의의를 다.. 더보기 토스 SLASH 21 - 프론트엔드 웹 서비스에서 우아하게 비동기 처리하기 후기 최근 기술면접 스터디에서 비동기와 동기 처리에 대해 계속 이야기가 나오고 있기도 하고 프로젝트를 하기에 앞서 React를 프론트엔드에서 사용할 생각이라 이런 내용도 알고 있으면 구현하는 데도 도움이 될 것 같아 이번주 세미나는 이 세미나로 결정했다. React를 사용하면서 비동기 처리를 고려해서 구현한 적이 많이 없었던 것 같고 왜 그렇게 구현해야하는지 주의 깊게 공부하지 못했던 것 같아 이번 세미나가 나에게는 비동기라는 개념에 대해서도 알 수 있고, 어떻게 비동기를 우아하게 처리할 수 있는지 방법까지 공부할 수 있는 세미나였다. 현재 토스의 상황 토스에서는 React, Next.js, Typescript를 현재 사용하고 있다. 웹 서비스에서 가장 다루기 어려운 부분은 비동기 프로그래밍 비동기 프로그래밍.. 더보기 4월 우아한테크세미나 <지속가능한 SW 개발을 위한 코드리뷰> 후기 이전 회사에서도 코드리뷰를 도입해서 했지만 적극적으로 참여한 것은 아니어서 여전히 '코드리뷰란 무엇인가' 상태에 있었던 찰나 우아한테크에서 이런 좋은 세미나를 열어주었다. 왜 코드리뷰를 해야하는가? 좋은 설계의 중요성 시장은 VUCA, 이중에서도 변화 주기가 빨라지고 있어서 비즈니스는 더 빨리 혁신해야하는데 개발의 경우 빠르게, 자주, 더 안정성있게 배포되어야 한다고 말하기 때문에 개발 조직의 성능(생산성)이 중요해졌기 때문 -> 좋은 설계 SW 공학에서 설계는 완전한 소스 코드고 좋은 설계는 클린한 코드, 설계를 잘하는 사람은 코드를 잘 작성하는 사람이라고 할 수 있음 SW의 진정한 비용은 유지보수, 90% 이상의 시간을 어떤 코드를 이해하는데 사용함 SW 개발의 단순한 진리 : 제일 빠르게 가는 유일.. 더보기 이전 1 다음