개발하자(DevHaja)

FrontEnd/React & React-Native

[React] JSX

📝 JSX JSX는 자바스크립트의 확장 문법이며 XML과 비슷하게 생겼습니다. JSX 형식으로 작성한 코드는 브라우저에서 실행되기 전에 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환됩니다. //JSX 코드 function App(){ return( Hello ); } export default App; //바벨을 사용하여 자바스크립트 코드로 변환된 코드 function App(){ return React.createElement("h1", null, "Hello"); } 컴포넌트를 렌더링할 때마다 JSX 코드를 작성하는 것이 아니라 React.createElement 함수를 사용해야 하는 것은 매우 불편합니다. 📝 JSX의 장점 1. 보기 쉽고 익숙하다 위처럼 일반 자바..

FrontEnd/React & React-Native

[React] React Characteristic(리액트의 특징)

📝 DOM(Document Object Model) 객체로 문서 구조를 표현하는 방법으로 XML이나 HTML로 작성합니다. 웹 브라우저는 DOM을 활용하여 객체에 javascript와 css를 적용합니다. DOM은 트리 형태라서 특정 노드를 찾거나 수정하거나 제거하거나 원하는 곳에 삽입할 수 있습니다. 📝 Virtual DOM Virtual DOM을 사용하면 실제 DOM에 접근하여 조작하는 대신, 이를 추상화한 자바스크립트 객체를 구성하여 사용합니다. 리액트에서 데이터가 변하여 웹 브라우저에 실제 DOM을 업데이트할 때는 다음 세 가지 절차를 밟습니다. 데이터를 업데이트하면 전체 UI를 Virtual DOM에 리렌더링합니다. 이전 Virtual DOM에 있던 내용과 현재 내용을 비교합니다. 바뀐 부분만 ..

FrontEnd/React & React-Native

[React] Why React?(왜 리액트인가?)

현재 자바스크립트는 웹 애플리케이션에서 가장 핵심적인 역할을 하고, 이제 자바스크립트만으로도 규모가 큰 애플리케이션을 만들 수 있는 시대가 왔습니다. 대규모 애플리케이션 중 프론트엔드 사이드에서 돌아가는 애플리케이션 구조를 관리하려면 어떻게 해야될까요? 이러한 애플리케이션을 특별한 도구 없이 순수 자바스크립트로만 관리하는 것은 다소 부담스러운 일입니다. Angular, Backbone.js, Derby.js, vue.js 등과 같은 프레임워크가 조금씩 다른 관점에서 이를 해결하려고 노력해 왔습니다. 이 프레임워크들은 주로 MVC(Model-View-Controller), MVVM(Model-View-View Model) 아키텍쳐를 사용합니다. MVC, MVVM과 같은 여러 구조가 지닌 공통점은 모델(Mo..

Dev knowledge

Web Server와 WAS

📋 Web Server 란? 웹 서버랑 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버입니다. 정적 컨텐츠란 단순 html, css, image, file 등 즉시 응답 가능한 컨텐츠 입니다. 이때 웹 서버가 정적 컨텐츠가 아닌 종적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해줍니다. 📋 WAS(Web Application Server) 란? WAS란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버입니다. HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어로서, 주로 데이..

FrontEnd/JavaScript & TypeScript

[JS] 랜덤 숫자 추출 방법(범위 지정)

📋 script를 이용해 지정된 범위 내 랜덤으로 숫자를 추출하는 방법입니다. ✔ Math.floor() Math.floor() 함수는 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다. ✔ Math.random() Math.random() 함수는 0 이상 1 미만의 구간에서 근사적으로 균일한 부동소숫점 의사 난수를 반환하며, 이 값은 사용자가 원하는 범위로 변형할 수 있습니다. [CODE] Math.random() 함수는 0 이상~1 미만의 난수를 생성합니다. Math.random(); Math.floor() 함수는 해당 숫자와 같거나 해당 숫자 보다 더 작은 정수를 반환 합니다. Math.floor(3.5) //결과 3 Math.floor(-3.5) //결과 -4 Math.random(..

Dev knowledge

SPA(Single Page Application)

📝 SPA(Single Page Application) SPA란 하나의 페이지로 이루어진 애플리케이션이라는 의미입니다. 왜 싱글 페이지 애플리케이션이라는 개념이 생기기 전에 사용되던 멀티 페이지 애플리케이션을 먼저 알아보도록 하겠습니다. 멀티 페이지 애플리케이션에서는 사용자가 다른 페이지로 이동할 때마다 새로운 html을 받아오고, 페이지를 로딩할 때마다 서버에서 CSS, JS, image 파일 등의 리소스를 전달받아 브라우저 화면에 보여 주었습니다. 각 페이지마다 다른 html 파일을 만들어서 제공을 하거나, 데이터에 따라 유동적인 html을 생성해 주는 템플릿 엔진을 사용하기도 했습니다. 사용자 인터랙션이 별로 없는 정적인 페이지들은 기존의 방식이 적합하지만, 사용자 인터랙션이 많고 다양한 정보를 제..

FrontEnd/JavaScript & TypeScript

[JS] addEventListener 종류

📋 addEventListener DOM 객체로부터 이벤트가 발생할 때 해당 이벤트 처리 핸들러를 추가할 수 있는 오브젝트입니다. 특정 DOM에 script 이벤트가 발생할 때 특정 함수를 호출합니다. ✔ 사용 방법 초기 적용 시 DOM객체.addEventListener(이벤트 명, 실행할 함수 명, 옵션) 사용 후 제거 시 DOM객체.removeEventListener(이벤트 명, 실행할 함수 명, 옵션) ✔ 자주 사용하는 이벤트 종류 click : 클릭할 때 이벤트 발생 mouseover : 마우스를 요소 위에 올리면 발생 mouseout : 마우스가 요소 밖으로 벗어날 때 발생 mousedown : 마우스 클릭 버튼을 누르고 떼기 전인 순간 발생(드래그할 때 사용) mouseup : 마우스 클릭을 ..

FrontEnd/CSS

[CSS] '...' 처리하는 방법 (text-overflow : ellipsis)

📋 text-overflow text-overflow 란 박스 안에 내용이 넘칠 때 텍스트를 어떻게 처리할지 지정하는 속성입니다. text-overflow 속성은 아래 두가지를 모두 충족할 경우에만 적용됩니다. overflow 속성값이 hidden, scroll, auto 일때 (visible 제외) white-space: nowrap ✔ '...' 처리하는 방법 [HTML] 텍스트 내용이 박스를 넘어가게 될때 ...을 사용하는 방법입니다. [CSS] .text{ width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } overflow: hidden : 넓이가 100px을 넘어가는 내용에 대해서 보이지 않게 처리 text-ov..

FrontEnd/CSS

[CSS] box-sizing

📋 box-sizing? box-sizing 속성은 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성입니다. 속성 값에는 content-box와 border-box가 있습니다. ✔ content-box 컨텐츠 영역을 기준으로 크기를 정합니다. border, margin, padding은 따로 계산되어 전체 영역이 설정값보다 커질 수 있습니다. ✔ border-box 테두리를 기준으로 크기를 정합니다. border, margin, padding을 모두 합산하기 때문에 컨텐츠 영역이 설정값보다 적어질 수 있습니다. ✔ initial 기본값으로 설정합니다. ✔ inhreit 부모 요소의 속성값을 상속받습니다.

devwoodie
개발하자(DevHaja)