❗️ CI/CD란? - CI: Continuous Integration(지속적 통합)동일한 프로젝트에서 작업하는 모든 사람이 정기적으로 코드 변경 사항을 중앙 저장소에 병합하도록 하는 방식main 브랜치에 머지 -> CI Server에서 감지 -> 빌드/테스트를 진행하고 결과를 사용자에게 알려줌개발 -> 빌드 -> 테스트 -> 통합을 빠르게 하는 것 - CD: Continuous Delivery(지속적 제공) & Continuous Deployment(지속적 배포) 1. Continous DeliveryCI 이후 코드의 변경 사항을 프로덕션 환경으로 릴리즈 할 준비가 된 상태여기서 QA 진행 2. Continuous DeploymentContinous Delivery에 이어서 프로덕션 배포까지 자동화C..
OAuth2 .0을 사용하는 이유보통 간편로그인을 구현하고자 OAuth를 많이 사용한다. 먼저 OAuth를 사용하지 않고 구글 드라이브에 사진을 가져오는 예시를 생각해보자.(사용자/구글/우리의 서비스->동구리닷컴) 1. 사용자가 구글(드라이브) ID/PW를 동구리닷컴 제공한다.2. 동구리닷컴은 유저의 구글 ID/PW를 이용해서 구글에 로그인한다.3. 동구리닷컴은 유저의 구글 드라이브에 저장된 사진을 가져온다. 위와 같이 동작하면 어떤 문제점이 있을까?사용자 : 동구리닷컴이 구글 드라이브에만 접근한다고 신뢰할 수 없다.(구글 메일을 훔쳐본다면?)동구리닷컴 : 사용자의 구글 ID/PW를 저장하고 직접 관리해야 한다.(탈취 당한다면?)구글 : 사용자들의 구글 계정이 쉽게 유출될 수 있다.(구글의 잘못이 아닌데..
브라우저 프레임초당 프레임(fps)는 1초에 몇 개의 프레임이 보여지는 가를 나타낸다.스크롤을 하거나 애니메이션 같은 것들이 화면에서 부드럽게 보이기 위해서는 60fps가 필요하다.1000ms/60 = 16.666ms 간격으로 프레임을 생성해야 된다.즉, 사용자에게 부드러운 애니메이션 느낌을 보여주기 위해서는 16.6ms마다 코드를 호출해야 하는 것이다.16.6ms보다 더 오래 걸리게 되면, 화면에서 끊김 현상이 발생한다.RequestAnimationFrame최적화를 해서 애니메이션을 효율적으로 실행해주는 함수이다.requestAnimationFrame은 브라우저가 애니메이션을 업데이트할 준비가 되면 호출된다.실제 화면이 갱신되는 주기에 맞춰서 콜백을 호출해주기 때문에 화면 끊김 현상을 방지한다. re..
웹 캐시란?캐시란 데이터에 빠르게 접근하기 위해 자주 사용되는 데이터나 값을 미리 복사해 놓는 임시 장소를 의미한다.웹 캐시란 브라우저가 서버에서 받아온 리소스를 특정 위치에 저장해 놓는 것이다.이후 요청을 하면, 해당 리소스가 있는지 확인하고 재사용하는 방법이다. 캐시는 Http 헤더의 Cache-Control로 설정할 수 있다. ⭐️ Cache-Control 옵션no-store : 캐시에 리소스를 저장하지 않는다.no-cache : 캐시 만료기간을 신경쓰지 않고 항상 서버에 리소스 재검사를 요청한다.must-revalidate : 캐시 만료기간이 지났을 때만 서버에 리소스 재검사를 요청한다.public : 해당 리소스를 캐시에 저장한다.private : 해당 리소스를 캐시에 저장하지 않는다. 개인정보..
웹뷰(Web View)란?프레임워크에 내장된 웹 브라우저 컴포넌트로 앱 내에서 웹 브라우저를 띄우는 것이다.앱을 벗어나지 않고 웹 브라우저를 띄운다는게 핵심이다.=> 앱에 내장되어 있는 브라우저 카카오톡으로 받은 링크에 접속하면 카카오톡 자체 브라우저를 통해 접근하는데, 이게 웹뷰를 사용한 것이다!앱 개발 방법- 웹앱HTML, CSS, JS로 개발앱과 유사한 경험을 제공하면서 웹 브라우저를 통해 접속하는 웹 페이지설치하는 방식 X - 네이티브 앱특정 플랫폼에 맞게 개발된 앱운영체제와 하드웨어의 기능을 모두 활용할 수 있음앱 스토어에서 설치해야 됨 - 하이브리드 앱웹앱과 네이티브 앱의 장점만 합친 기술앱의 화면이나 기능은 웹 기반으로 제작하고 겉모습은 네이티브 앱으로 패키징앱 스토어에서 설치해야 됨 웹뷰 ..
SWC(Speedy Web Compiler)란?Rust라는 언어로 제작되었고 컴파일과 번들링을 수행하는 빌드 툴이다.매우 빠른 JS 컴파일러로 기존 babel이 하던 일을 대체하였고,SWC는 컴파일러이지만 웹팩과 같은 JS 번들러의 기능도 제공한다.SWC는 단일 스레드에서는 Babel보다 20배 빠르고 , 4개 코어에서는 70배 빠르다. 컴파일 - 한 언어로 작성된 코드를 다른 언어의 코드로 변환(타입스크립트 파일을 자바스크립트 파일로 변환)트랜스파일 - 컴파일의 하위분류. 유사한 두 언어 사이에서 변환(JS 최신 문법을 구형 문법으로 변환)번들러 - 분리된 모듈을 하나의 모듈로 묶어줌(웹팩)Next.js의 SWC 도입Next.js에 SWC를 도입함으로써 Babel과 Terser를 대체하였다.Babel과..