So tired
이 글은 틀린 내용을 담고 있을 수도 있습니다. 지적해주시면 감사하겠습니다. 웹 브라우저(Web Browser) 웹 브라우저는 우리가 접속하려고 하는 웹페이지를 보여주고 조작할 수 있게 도와주는 프로그램이다. 이러한 웹 브라우저에는 대표적으로 Chrome, Safari, Firefox 등이 있으며, 각 브라우저 마다 비슷한 기능을 하더라도 내부적인 구성은 다를 수 있다. 이유는 여러가지겠지만 그 중 하나로 브라우저 마다 사용하고 있는 엔진이 다르기 때문이다. 엔진. 브라우저는 하나 혹은 여러개의 엔진들로 구성되어 있다. 아래 그림은 Chrome 브라우저를 구성하는 엔진들을 나타내고 있다. 웹이 점점 발전함에 따라 엔진은 고도화 되었고, 이에 따라 역할도 엔진 별로 분리되기도 하였다. (크롬으로 보면 브라..
React, Vue 같은 라이브러리나 프레임워크들을 쓰는 목적은 결국 하나의 페이지에서 데이터를 동적으로 변경하기 위함인 것 같다. Vue에 대해 공부하던 중 Vue는 주어진 모든 객체의 변경사항을 추적하기 위해 Proxy 객체로 변환한다는 사실을 알게 되었고 관련된 개념이 모잘라 간단히 정리해보려고 한다. 반응성 (Reactivity) Vue 공식 문서에선 반응성(Reactivity)에 대해, "변경"에 대한 제어를 선언적으로 수행하는 프로그래밍 패러다임이라고 나와 있다. 간단히 말해 내부에서 변경을 어떤식으로 이루어지게 하는지보다 해당 방식을 통해 변경을 이뤄지게 하겠다에 대해 중점이 맞춰진 방식이란 말이다. (여기서 선언형 프로그래밍이 이해가 되지 않는다면 다음 글을 읽어 보자.) 반응성에 대해 ..
필자는 여태까지 계속 React만 써오다가 인턴을 하게 되면서 처음으로 Vue와 Nuxt를 접하게 되었다. 기존 회사의 서비스가 Vue2 + Nuxt2로 작성되어 있어서 Vue3 + Nuxt3로 마이그레이션을 하는 일을 받게 되었는데, Vue에 대한 개념도 없어서 삽질을 많이 했다. 그래서 나처럼 모종의 이유로 React에서 Vue3나 Nuxt3를 처음 사용하게 될 사람들을 위해 도움이 될법한 글을 써보려고 한다. 공식문서 읽어보기 우선 Vue와 Nuxt를 다루게 된다면, 모르는 것이 생길때 마다 구글링해서 블로그를 찾아보는 것 보단 공식문서 내에서 찾아보고 정독해보는 것을 추천한다. 왜냐하면 대부분이 Nuxt2와 같이 이전의 문법으로 적힌 문서들이 많았고 Vue는 Options API와 Composit..
어디까지나 학부생 글쓴이의 관점에서 생각된 내용입니다. 반박과 질문 환영입니다. 목차 이번 학기 "소프트웨어개발실무"라는 과목을 수강하면서 개발에 대한 Best Practice를 고민해 보게 되었다. 이 수업을 들으면서 조사한 내용 중 실제로 당장 프로젝트에 적용해 볼 만한 내용들이 있었고, 이 내용들을 정리해 하나의 케이스로써 팀원들에게 "이런 방식으로 해보면 어떨까요~??"라고 말해보는 것도 좋을 것 같아 작성을 해보게 되었다.Base주로 Git Workflow 방식에 대해 찾아보면 Git Flow, Github Flow, Gitlab Flow 3가지 방식이 나온다. 꼭 branch 전략을 이런 case로 가져갈 필요는 없지만, 나름의 고민을 해보면서 아래와 같은 점들은 꼭 지켜져야 될 것 같다고 생..
이것은 1학년 2학기때 시스템프로그래밍 기초라는 과목을 들으면서 구현한 것인데 개념과 함께 누군가에겐 도움이 되지 않을까 싶어 글을 쓴다. 나도 이 과제 덕분에 프로그래밍을 하는 데 있어 막힘도 많았지만 구현하였을 때의 쾌감을 다시 한번 느끼지 않았나 싶어 글을 남겨본다.K-means Clustering 이란?K-means Clustering은 비지도 학습(Unsupervised Learning)의 대표적인 알고리즘으로, 주어진 데이터를 K개의 Cluster(클러스터, 군집)으로 묶는 알고리즘이다. K-means 알고리즘에서 K는 묶을 클러스터의 개수를 의미하고 means는 평균을 의미한다. 즉, 각 클러스터의 평균(mean)을 활용하여 K개의 군집으로 묶는다는 의미이다.분류(Classification)..
이번 사이드 프로젝트를 준비하면서 모르는 개념들이 상당히 많다는 것을 알게 되었다. 그래서 그러한 개념들을 공부할 겸 하나씩 정리해 보려고 한다. Background 빠르게 변화하는 시대에 시장과 고객의 요구에 빠르게 반응하면서 제품을 출시하는 것은 쉽지 않다. 이러한 변화에 빠르게 대응하기 위한 개발 프로세스가 CI / CD이다. 이게 무슨 말이냐. 우리는 애플리케이션을 만들어 내기 위해서 다양한 프로세스를 거치게 되는데, 이것에 관한 여러 모델들이 존재한다. 이런 것들을 개발 프로세스 모델이라고 부르는데 CI/CD 는 개발 프로세스 모델 중 하나이다. 참고하면 좋은 사이트: 개발 프로세스의 발전 What is it? 만약 당신 속한 조직에서 애플리케이션을 하나 개발했다고 가정하자. 이 애플리케이션은 ..
빠른 개발을 위해.. 세이브용! import java.util.Scanner; public class Main { public static void main(String[] args) { int num[] = new int[5]; Scanner sc = new Scanner(System.in); for(int i = 0; i < num.length; i++) { num[i] = sc.nextInt(); } } }
가끔 인강 영상들을 보다보면 배속기능이 없는 강좌들이 있다. 물론 무조건 학생들이 처음부터 끝까지 다 보라는 마음에 조작 키들을 없애버린 것 이겠지만,, 21세기에 살고 있는 우리들에겐 이런걸 듣고 있을 시간이 없다.. 내가 웹을 공부하고 나서 보니, 결국 웹을 만든 것도 사람이다. 결국 보안을 철저히 하지 않는 이상 헛점이 들어날 수 밖에 없고, 웹을 공부하고 있는 사람으로써 이런건 못참는다..ㅎ 본론으로 돌아가, 우리 학교 웹 사이트를 기준으로 설명을 하겠다. 우선 개발자 도구(일반적으로 F12)를 열어서 그림에 커서가 가리키고 있는 버튼을 눌러준다. 그리고 웹사이트에 커서를 대면 이것저것 뜰텐데, 커서를 영상파일에 가져다 대고 클릭하면 해당 영상의 HTML Element를 가리켜 준다. 위 그림에서..