개인 자료 정리 홈페이지 입니다.

Note > 자바스크립트 관련반복문

By a3040, Published on Invalid Date

for, while, do...while, for...in

for...of, forEach, map, filter, reduce


for: for문은 일반적인 반복문입니다. 주로 배열이나 객체와 같은 컬렉션을 순회할 때 사용합니다.


const arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]); // 1, 2, 3
}


while: while문은 주어진 조건식이 true인 동안 코드를 반복해서 실행합니다.


let i = 0;
while (i < 5) {
  console.log(i); // 0, 1, 2, 3, 4
  i++;
}


do...while문은 일단 코드를 한 번 실행한 후에, 주어진 조건식이 true인 동안 코드를 반복해서 실행합니다.


let i = 0;
do {
  console.log(i); // 0, 1, 2, 3, 4
  i++;
} while (i < 5);


for...in은 객체의 속성(property)을 반복해서 처리하는 데 사용됩니다. 객체의 프로퍼티를 순회할 때 사용합니다.


const obj = { a: 1, b: 2, c: 3 };
for (const prop in obj) {
  console.log(`${prop}: ${obj[prop]}`); // a: 1, b: 2, c: 3
}


for...of는 반복 가능한(iterable) 객체의 요소를 반복해서 처리하는 데 사용됩니다. 배열, 문자열, Map, Set 등의 객체를 반복할 수 있습니다.


const arr = [1, 2, 3];
for (const item of arr) {
  console.log(item); // 1, 2, 3
}

const str = 'hello';
for (const char of str) {
  console.log(char); // h, e, l, l, o
}


forEach는 배열의 각 요소에 대해 주어진 함수를 실행하는 데 사용됩니다. for...of문보다 간결하고 직관적으로 사용할 수 있습니다.


const arr = [1, 2, 3];
arr.forEach((item) => {
  console.log(item); // 1, 2, 3
});


map은 배열의 각 요소를 변환하는 데 사용됩니다. 배열의 각 요소에 함수를 적용하고, 그 결과로 새로운 배열을 생성합니다.


const arr = [1, 2, 3];
const doubled = arr.map((item) => item * 2);
console.log(doubled); // [2, 4, 6]


filter는 배열의 요소 중에서 주어진 조건에 맞는 요소만 추출하는 데 사용됩니다. 새로운 배열을 반환합니다.


const arr = [1, 2, 3, 4, 5];
const even = arr.filter((item) => item % 2 === 0);
console.log(even); // [2, 4]



Note > htmldl, dt, dd

By a3040, Published on Invalid Date

dl은 Definition List의 약어입니다. dt는 Definition Term, dd는 Definition Description의 약어입니다.


<dl>은 용어와 그 용어에 대한 설명을 나타내는 데 사용되는 HTML 태그입니다.

<dt> (용어 정의 용어)는 용어의 제목 또는 이름을 지정하고,

<dd> (용어 설명)는 용어에 대한 설명을 제공합니다. 일반적으로 용어집, 용어 사전 등에서 사용됩니다.


<dl>
    <dt>JavaScript</dt>
    <dd>웹 페이지에서 상호 작용을 추가하기 위해 사용되는 프로그래밍 언어</dd>
    <dt>CSS</dt>
    <dd>웹 페이지에서 스타일을 적용하기 위해 사용되는 스타일 시트 언어</dd>
    <dt>HTML</dt>
    <dd>웹 페이지 구조를 정의하기 위해 사용되는 마크업 언어</dd>
 </dl>



Note > tailwindcsscontainer mx-auto

By a3040, Published on Invalid Date

container 클래스는 반응형 웹 디자인을 위한 그리드 시스템을 제공하며, 내부에 있는 콘텐츠를 중앙에 배치할 수 있도록 해줍니다.

이 클래스는 웹 페이지의 전체 너비를 사용하지 않고, 일부 공간을 비워 두는 것으로 컨텐츠의 가독성을 높일 수 있습니다.


mx-auto 클래스는 부모 요소의 가로 방향 중앙에 자식 요소를 배치합니다.

이 클래스는 margin-leftmargin-right 속성을 모두 auto로 설정하여 가로 방향으로 중앙 정렬합니다.


<div class="container mx-auto">
  <h1 class="text-3xl font-bold">Hello, World!</h1>
  <p class="text-lg">This is an example of using Tailwind CSS classes.</p>
</div>
Note > 자바스크립트 프레임워크/라이브러리모음Redux

By a3040, Published on Invalid Date

Redux - A predictable state container for JavaScript apps. | Redux


Redux 시작하기 | Redux


react에서 redux 사용하는 기본 구조입니다.

forgithub00/redux_1 at master · a3040/forgithub00


Redux는 JavaScript 애플리케이션에서 상태 관리를 위한 도구입니다. 

React와 함께 많이 사용되며, React에서 컴포넌트 간에 상태를 공유하고 업데이트하기 위한 상태 관리 방법으로 Redux를 많이 사용합니다.


중요한 메소드는 다음과 같습니다.


createStore(reducer, [preloadedState], [enhancer]): 

애플리케이션의 상태를 저장하고 업데이트하는 스토어를 생성합니다. reducer는 액션에 따라 상태를 업데이트하는 함수이며, preloadedState는 초기 상태값을 나타내며 선택적으로 전달될 수 있습니다. enhancer는 미들웨어와 같은 스토어의 기능을 확장하는 함수입니다.


combineReducers(reducers): 

다수의 리듀서를 하나로 합쳐줍니다. 이를 통해 하나의 애플리케이션 상태를 여러 개의 작은 리듀서로 나눌 수 있습니다.


dispatch(action): 

액션을 발생시킵니다. 액션은 객체 형태로 {type: 'ACTION_TYPE', payload: ...}와 같은 형태로 구성됩니다. 리듀서는 이 액션에 따라 상태를 업데이트합니다.


getState(): 

스토어에 저장된 현재 상태를 반환합니다.


subscribe(listener): 

스토어에 상태가 변경될 때마다 호출되는 콜백 함수를 등록합니다. 이를 통해 상태가 변경될 때마다 UI를 업데이트하거나, 상태 변경을 로그로 기록할 수 있습니다.


applyMiddleware(...middlewares): 

미들웨어를 등록합니다. 미들웨어는 액션을 디스패치하기 전 또는 후에 추가적인 동작을 수행할 수 있습니다. 

Redux Thunk와 같은 미들웨어를 사용하면 비동기 작업을 처리할 수 있습니다.



사용 방법

기본 뼈대를 생성하고 1.~4를 순서대로 진행하면서 필요한 action을추가 하고 사용합니다.


1. actions를 생성합니다

2. reducer를 생성합니다.

3. store를 생성합니다.

4. 사용합니다.


1. actions를 생성합니다

export const increment = () => {
    return {
      type: 'INCREMENT'
    };
  };
  ...


2. reducer를 생성합니다.

const initialState = {
    count: 0
};


export const counterReducer = (state = initialState, action) => {
 switch (action.type) {
  case 'INCREMENT':
    return {
     count: state.count + 1
    };
...
  default:
    return state;
 }
};


3. store를 생성합니다.

import { createStore } from 'redux';
import { Provider } from 'react-redux';
import { counterReducer } from './reducers';
const store = createStore(counterReducer);


const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
  <Provider store={store}>
    <App />
  </Provider>
  </React.StrictMode>
);


4. 사용합니다.

import { useDispatch, useSelector } from 'react-redux';
import { increment, decrement,multiply  } from './actions';


function App() {
 const [value, setValue] = useState(1);
 const dispatch = useDispatch();
 const count = useSelector(state => state.count);


 const handleIncrement = () => {
   dispatch(increment(value));
 };
 ...  
 return (
 <div>
   <h1>Count: {count}</h1>
   <input type="number" value={value} onChange={handleChange} />
   <button onClick={handleIncrement}>Increment</button>
   <button onClick={handleDecrement}>Decrement</button>   
   <div>
       <label>
         Multiply by:
       </label>
       <button onClick={handleMultiply}>Multiply</button>
     </div>
 </div>
  );
}


export default App;
Note > 자바스크립트 관련DOM과 주요 제어 메소스

By a3040, Published on Invalid Date

DOM 소개 - Web API | MDN (mozilla.org)


DOM(Document Object Model)은 HTML, XML 등의 문서를 객체로 표현하는 모델입니다.

우리가 작성한 HTML 문서를 브라우저가 사용하기 위해 해석하고 사용자가 javascript를 이용해서 추가, 수정등을 할수있게 해석한 객체들의 요소에 대한 이야기 입니다. 주요 요소는 Document, Element, Node, Event, NodeList, Window 등이 있습니다.


<!DOCTYPE html>
<html>
  <head>
    <title>Document 객체 예시</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <p>This is an example of Document object.</p>
  </body>
</html>


위 예시의 HTML문서 전체가 Document 객체를 나타냅니다. 문서의 모든 요소는 document객체의 하위요소로 포함됩니다.


> console.log( document.title )
Document 객체 예시
> console.log( document.head )
  <head>
    <title>Document 객체 예시</title>
  </head>


HTML 문서에서 element와 tag는 종종 혼용되어 사용됩니다. 위 예시에서 h1, p등이 Dom 객체중 Element가 됩니다. Node는 Elment들을 표현합니다.

document 객체는 Node들이 모여서 만들어 지고 Node는 Element들이 모여서 만들어집니다.


// `document` 객체를 사용하여 `h1` 요소를 선택합니다.
const h1 = document.querySelector('h1');

// `h1` 요소의 `text` 노드를 선택합니다.
const textNode = h1.firstChild;

// `text` 노드의 내용을 변경합니다.
textNode.textContent = 'Hello DOM!';

// `text` 노드의 스타일을 변경합니다.
textNode.style.color = 'red';



document.getElementById(): HTML 요소의 ID를 사용하여 해당 요소를 가져옵니다.

document.getElementsByClassName(): 지정된 클래스 이름과 일치하는 모든 요소를 가져옵니다.

document.getElementsByTagName(): 지정된 태그 이름과 일치하는 모든 요소를 가져옵니다.

document.querySelector(): selctor를 이용한 요소를 가져옵니다.

element.appendChild(): 지정된 요소를 다른 요소의 자식으로 추가합니다.

element.removeChild(): 지정된 요소를 삭제합니다.

element.setAttribute(): 요소의 속성을 설정합니다.

element.getAttribute(): 요소의 속성 값을 가져옵니다.

element.style.propertyName: 요소의 스타일 속성을 설정하거나 가져옵니다.

element.classList.add(): 요소에 클래스를 추가합니다.

element.classList.remove(): 요소에서 클래스를 제거합니다.