'2025/01'에 해당되는 글 4건

  1. 2025.01.21 javascript용 템플릿 mustache
  2. 2025.01.21 golang 개요
  3. 2025.01.20 높이 조절 Resizable div
  4. 2025.01.03 Slack용 API 키 생성하기

javascript 혹은 react상에서 간단한 템플릿 랭기지인 mustache 를 살펴보면 다음과 같다.

설치: npm install mustache

 

 

예제코드.

import React from "react";
import Mustache from "mustache";

const TemplateRenderer = () => {
  const template = "Hello, {{name}}! Welcome to {{platform}}.";
  const data = {
    name: "John",
    platform: "React Mustache",
  };

  const renderedText = Mustache.render(template, data);

  return <div>{renderedText}</div>;
};

export default TemplateRenderer;
Posted by yongary
,

golang 개요

golang 2025. 1. 21. 09:12

포인터가 존재: c언어와 유사
패키지명/가비지 컬렉션존재: java와 유사 

 

- 함수의 지연된 실행 허용

 

- 동시 프로그래밍을 지원하여 여러 프로세스를 동시에 실행할 수 있음

이는 채널, 고루틴 등을 사용하여 달성됩니다.

Posted by yongary
,


코드 에디터 (아래에 실행영역)이 있는 것 처럼 아래 위 두개의 영역이 있고,
중간을 마우스로 드래그하면서  둘 사이의 비율을 조절하고 싶을때
다음과 같은 방식으로 가능하다. 

동작 원리

  1. 상단 div의 높이 조절:
    • onMouseDown: 마우스 조절 시작을 감지.
    • onMouseMove: 마우스의 Y축 좌표(e.clientY)를 기준으로 height 상태를 업데이트.
    • onMouseUp: 조절 종료.
  2. 하단 div의 크기 계산:
    • 상단 div의 높이를 기준으로 나머지 공간을 자동으로 차지하도록 flex 사용.
  3. 유저 경험:
    • resizer 영역에서 마우스 커서가 변경(row-resize).
    • 조절 중 user-select: none을 사용해 텍스트 선택을 방지.

 

 

 

react 코드:

import React, { useState } from "react";
import "./ResizableDiv.css"; // 스타일 관리

const ResizableDiv = () => {
  const [height, setHeight] = useState(300); // 상단 div 초기 높이
  const [isResizing, setIsResizing] = useState(false); // 조절 상태 관리

  const handleMouseDown = () => {
    setIsResizing(true); // 마우스 드래그 시작
  };

  const handleMouseMove = (e) => {
    if (!isResizing) return;
    const newHeight = e.clientY; // 마우스 위치를 기준으로 높이 계산
    setHeight(newHeight);
  };

  const handleMouseUp = () => {
    setIsResizing(false); // 마우스 드래그 종료
  };

  return (
    <div
      className="container"
      onMouseMove={handleMouseMove}
      onMouseUp={handleMouseUp}
      onMouseLeave={handleMouseUp}
    >
      <div className="top-div" style={{ height: `${height}px` }}>
        상단 Div
      </div>
      <div className="resizer" onMouseDown={handleMouseDown}></div>
      <div className="bottom-div">하단 Div</div>
    </div>
  );
};

export default ResizableDiv;

 

 

CSS

.container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
  user-select: none; /* 텍스트 선택 방지 */
}

.top-div {
  background-color: #f0f0f0;
  border-bottom: 2px solid #ccc;
  overflow: auto;
}

.resizer {
  height: 10px;
  background-color: #888;
  cursor: row-resize;
}

.bottom-div {
  background-color: #e0e0e0;
  flex: 1;
  overflow: auto;
}
Posted by yongary
,

Slack API 키를 발급받기 위해서는 Slack 앱 생성과정을 거쳐야 합니다. Slack 앱을 생성한 후, API 키(토큰)를 발급받아 다양한 Slack API 호출에 사용할 수 있습니다. 아래는 단계별 방법입니다.


1. Slack 앱 생성하기

  1. Slack API 페이지 방문:
  2. 앱 생성 시작:
    • 상단의 "Create an App" 버튼을 클릭합니다.
  3. 앱 생성 방법 선택:
    • **"From scratch"**를 선택하여 새 앱을 생성합니다.
  4. 앱 이름 및 워크스페이스 선택:
    • 앱 이름을 입력하고, 앱을 설치할 워크스페이스를 선택합니다.
    • "Create App" 버튼을 클릭하여 앱 생성을 완료합니다.

2. OAuth & Permissions 설정

  1. OAuth & Permissions 메뉴로 이동:
    • 생성된 앱의 관리 페이지에서 "OAuth & Permissions" 탭으로 이동합니다.
  2. OAuth 범위(Scope) 설정:
    • "Scopes" 섹션에서 앱이 필요로 하는 권한을 설정합니다.
    • 예를 들어:
      • chat:write: 메시지 전송 권한.
      • channels:read: 채널 정보 읽기 권한.
      • users:read: 사용자 정보 읽기 권한.
    • 필요한 범위를 선택하고 추가합니다.
  3. 앱 설치:
    • "Install App to Workspace" 버튼을 클릭하여 앱을 워크스페이스에 설치합니다.
    • 설치를 완료하면 **OAuth 토큰(Access Token)**이 생성됩니다.

3. API 키(Access Token) 확인

  1. OAuth 토큰 복사:
    • 설치 완료 후 표시되는 "Bot User OAuth Token" 또는 **"User OAuth Token"**을 복사합니다.
    • 이 토큰이 Slack API 호출 시 사용하는 API 키입니다.
  2. 보안 저장:
    • 토큰은 민감한 정보이므로 안전한 곳에 저장합니다.
    • 코드에 직접 포함시키기보다는 환경변수로 관리하는 것이 권장됩니다.

4. 토큰 사용 예제

복사한 API 키를 사용하여 Slack API를 호출할 수 있습니다. 예를 들어, 메시지 전송 API를 호출하려면 다음과 같이 작성합니다:

bash
코드 복사
curl -X POST -H "Authorization: Bearer xoxb-your-token" -H "Content-Type: application/json" \ --data '{"channel":"#general","text":"Hello, Slack!"}' \ https://slack.com/api/chat.postMessage
Posted by yongary
,