[Tistory] Webpack4 패키지 최적화

Webpack 마이그레이션을 진행하면서, 사이드 이펙트를 발생시키지 않고 소스 코드의 구조 변경을 최소화하는 최적화에 대해서 고민을 하며, 어떤 최적화를 할 수 있을까 하다 ‘패키지 최적화’를 진행하기로 선택하였다. 번들링의 방식과 구조를 변경하면서 사이즈를 축소시키고, 웹 페이지 리소스 로딩 속도 개선을 충분히 할 수 있었기 때문이다. 사실, 렌더링 최적화와 로직 최적화는 기존 레거시 구조에서 변경시키는데 상당히 많은 변화를 발생시키기 때문에 선택할 여지가 없었기도 한다. 번들링 사이즈 측정은 webpack-bundle-analyze로 하였고, Chrome의 Network 기능과 Lighthouse를 통하여 측정하였다. 측정결과 [webpack-bundle-analzye] Parsed Size: 10…

[Tistory] 2022년 회고 (소프트웨어 마에스트로 회고)

2022년을 마무리하며 남기는 회고 2022년이 끝이 난 지 13일이 지났지만 별로 실감이 나지 않는다. 2022년 13월인 것 같다.ㅎㅎ 나의 2022년을 되돌아보며 한번 적어본다. 많은 일이 있었던 2022 Timeline 1. 힘들었지만~~ 아무 일 없이 전역을 했다. 나 이후로 전역하는 친구들이랑 자주 만난다. 역시 인생은 어떻게 될지 모르는 것!! ㅎㅎ 안에서만 보다가 밖에서 만나니 신기하고 반갑다. 이런 친구들이랑 평생 연락하게 되지 않을까 싶다. 전역하고 몇 개월 후에 휴가 나온 같은 부서 막내를 만났는데 잘해줘서 고마웠다고 하니 웅클했다ㅎㅎ 그 친구가 이제 곧 왕고라닝! 얼른 나와 ㅁㄱ형, ㄱ현.. 커피 갈아줄게..ㅎㅎ 전역을 하며 이제 개발 서적도 많이 읽고 개발도 실컷 해보고 싶었다. ..

[Tistory] [GIT&AWS] 깃헙액션으로 CI/CD 배포 자동화 하기!

📖 EC2에 프로젝트 빌드하여 올리는 것까지 완료했다. 이제는 CI/CD 배포 자동화를 해볼 차례! 실제 배포된 인스턴스는 ubuntu이지만 포스팅이 죄다 linux 인스턴스로 되어있어서 일단 연습할 겸 새 인스턴스는 linux 기반으로 생성했다. 연습은 linux대로 하고 실제 적용할 땐 ubuntu 기준으로 살짝만 변경해주면 될 것이다. 1. ec2 인스턴스에서 자동배포를 위해 필요한 codedeploy를 설치해줘야 한다. # 패키지 매니저 업데이트, ruby 설치 sudo yum update sudo yum install ruby sudo yum install wget # 서울 리전에 있는 CodeDeploy 리소스 키트 파일 다운로드 cd /home/ec2-user wget https://aws-..

[Tistory] [Dev] 23.03.24. AWS RDS 인스턴스 생성 및 연결

지난 게시글에서는 AWS EC2 인스턴스를 생성하고, ssh 연결에 대한 작업을 기록했다. 현재 인스턴스에는 아무 것도 존재하지 않으므로 java도 설치하고 mysql도 설치해야 한다. 사실 ubuntu에 mysql을 다운로드해서 연결하고자 했는데, AWS RDB라는 친구가 있다기에 이왕 AWS를 활용해서 뚱땅이는 김에 사용해보려고 한다. 만약 MYSQL을 직접 다운로드하여 활용하고자 한다면 footnote 페이지를 참고하면 되겠다. AWS RDS 인스턴스 생성 EC2와 마찬가지로 검색창에 RDS를 검색하고 서비스를 선택하여 볼 수 있는 페이지이다. 아무런 데이터베이스가 없으니 생성하도록 하겠다. 가장 먼저 ‘데이터베이스 생성 방식 선택’ 항목이다. 표준 생성 방식을 선택하고 넘어간다. ‘엔진 옵션’ 항..

[Tistory] Backend Developer Roadmap (2) – Learn a language [Java]

자바란 무엇인가? 위키백과에서 제공해주는 Java의 간략한 설명이다. 자바(Java)는 자바로 기술된 프로그램 개발 및 실행을 할 수 있는 소프트웨어 모임의 총칭이다. 자바 프로그램은 운영체제나 하드웨어에 의존하지 않는 바이트 코드(중간 언어)인 추상적인 코드로 구현된다. 따라서, 자바 프로그램을 실행하기 위해서는 자바 가상 머신(JVM)과 개발에 필요한 표준 라이브러리 세트와 컴파일러의 환경만 맞추면 자바 프로그램은 모든 환경에서 동일하게 동작한다. 이러한 실행환경과 개발환경을 제공하는 것이 자바 플랫폼이다. 자바의 장점 플랫폼 독립성 (Platform Independence): 자바는 “Write Once, Run Anywhere(WORA)”라는 철학을 가지고 있어서, 한 번 작성한 코드를 여러 플랫..

[Tistory] 이득우 언리얼 참조 사이트

http://www.acornpub.co.kr/book/unreal-c#errata 이득우의 언리얼 C++ 게임 개발의 정석 언리얼 엔진 학습에 목말라하는 게임 개발자에게 단비 같은 언리얼 엔진 프로그래밍 책이다. www.acornpub.co.kr 스마 인턴 프로젝트 UNSEEN https://velog.io/@yoo06?tag=UNSEEN yoo06 (유영준) – velog velog.io UNSEEN 졸업생 https://husk321.tistory.com/category/%EC%BE%8C%EB%9D%BD%EC%97%86%EB%8A%94%20%EC%B1%85%EC%9E%84%20%28%EA%B3%B5%EB%B6%80%29/Unreal ‘쾌락없는 책임 (공부)/Unreal’ 카테고리의 글 목록 husk..

[Tistory] 임베디드 국비교육 복습 – 내용정리 및 참조링크

임베디드 국비교육에서 배웠던 내용 복습 경력이 쌓이고 복습을 반복할 때마다, 이전에 배운 내용이 좀 더 잘 이해가 되고, 왜 이 내용을 설명했는지 알 수가 있다. 여러모로 느낀 바가 많은 시간. 아래는 복습하면서 재정리한 내용과 참조한 링크 * 디바이스 드라이버는 이해하기 좋게 잘 연결되어 있지 않은 것으로 보인다. (내용을 짜집기 하기만 한듯?)추가적으로 책을 구매해 공부할 것. 1. 컴퓨터 아키텍처 – 폰노이만 아키텍처 : 명령어와 데이터를 위한 메모리 인터페이스가 하나인 구조 명령어 메모리(rom)와 데이터가 저장된 메모리(ram)에 접근하는 명령어, 데이터 버스를 공유한다 (즉 명령어 버스와 데이터 버스를 공용으로 사용한다) – 하버드 아키텍처 : 명령어와 데이터를 위한 메모리 인터페이스가 분리되..

[Tistory] 프론트랑 백엔드 협업 어케하는데

협업 하는 거에 대한 자료의 출처는 https://velog.io/@eunnbi/Project-%EB%B0%B1%EC%97%94%EB%93%9C%EC%99%80-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0 [Project] 백엔드와 협업하기 🐽 모아모아 프로젝트를 진행하면서 백엔드와 어떤 방식으로 협업했는지 정리해본다! 🚀 백엔드 api 이용하기 API는 프론트엔드와 백엔드가 소통하는 지점이라고 볼 수 있다. 개발과정에서 프 velog.io 이곳에서 가져오고 모르는 정보도 다른곳에서 가져왔기에 출처는 매번 밝히겠습니다. 프론트랑 백엔드 협업 어떻게함? 처음에는 첫 번째 방법을 선택했는데 쿠키 이슈로 인해 두번째 방법을 이용했다고 한다. 쿠키 이슈 (refresh token) 출처:h..

[Tistory] %EC%82%B6%EC%9D%98%20%ED%91%B8%EB%A5%B8%20%ED%95%B4%EB%B3%80

%3Cp%20data-ke-size%3D%22size16%22%3E%ED%91%B8%EB%A5%B8%20%EB%B0%94%EB%8B%A4%EB%8A%94%20%EC%96%B8%EC%A0%9C%EB%82%98%20%EB%A9%80%EB%A6%AC%20%EB%96%A0%EB%82%98%EA%B3%A0%20%EC%8B%B6%EC%9D%80%20%EA%B3%B3%EC%9D%B4%EC%97%88%EB%8B%A4.%3C/p%3E%0A%3Cp%20data-ke-size%3D%22size16%22%3E%EB%B0%94%EB%8B%B7%EA%B0%80%EC%97%90%EC%84%9C%20%EC%B1%85%EC%9D%84%20%EC%9D%BD%EC%9C%BC%EB%A9%B0%20%EC%8B%9C%EA%B0%84%EC%9D..

[Tistory] [React] React 프로젝트의 파일 구조 설계하기

프로젝트를 진행하다 보면 크기가 커질수록 관리해야할 파일은 늘어나고 이에 따라 각 파일들을 용도에 맞게 분류해야할 필요성을 느끼게 됩니다. 저도 최근에는 프로젝트를 시작하기 전에 필요한 폴더들을 미리 생성하고 전체적인 프레임을 설계한 이후 개발을 진행하고 있습니다. 이번 포스팅은 리액트를 사용할 때 폴더의 구조를 어떻게 잡으면 좋을지에 대해 다뤄보겠습니다. 먼저 CRA를 설치했을 때 기본적으로 설치되는 폴더 및 파일들의 역할에 대해서 간단히 살펴보겠습니다. CRA의 초기 폴더구조 my-app ├── node_modules ├── public ├── src ├── .gitignore ├── package.json ├── package-lock.json └── README.md node_modules 현재 ..