반응형

AJAX(Asynchronous JavaScript and XML)은 서버와 비동기적으로 데이터를 주고받는 기술로, 페이지 전체를 새로고침하지 않고도 서버와의 통신이 가능합니다. AJAX는 XML 외에도 JSON, HTML, 일반 텍스트 등 다양한 데이터 형식을 사용할 수 있습니다.

기본적으로 AJAX는 XMLHttpRequest 객체를 사용하여 구현되지만, fetch API와 jQuery 라이브러리를 사용한 방식도 일반적입니다. 각각의 구현 방식을 자세히 살펴보겠습니다.

1. XMLHttpRequest를 사용한 AJAX 요청

XMLHttpRequest 객체는 브라우저에서 서버와 데이터를 주고받기 위해 제공하는 API입니다. 기본 구조는 다음과 같습니다.

 

 

설명

  • xhr.open(method, url, async): AJAX 요청의 종류(GET, POST)와 URL, 비동기 여부(true/false)를 설정합니다.
  • xhr.onreadystatechange: AJAX 요청의 상태가 변경될 때마다 호출됩니다. xhr.readyState는 요청 상태를 나타내며, 4는 요청이 완료되었음을 의미합니다.
  • xhr.status: 서버의 응답 상태 코드를 반환합니다. 200은 성공, 404는 리소스를 찾을 수 없음, 500은 서버 오류를 의미합니다.
  • xhr.send(data): 서버로 요청을 전송합니다. GET 요청일 경우 data는 필요하지 않습니다. POST 요청일 경우 data에 전송할 데이터를 포함시킵니다.

참고: JSON 형식의 데이터를 전송할 때는 요청 헤더를 설정해야 합니다.

xhr.setRequestHeader('Content-Type', 'application/json');  

 

 

2. Fetch API를 사용한 AJAX 요청

fetch API는 최신 브라우저에서 지원하며, XMLHttpRequest보다 간단하게 사용할 수 있습니다. fetch는 Promise를 반환하므로 비동기 처리를 더욱 쉽게 할 수 있습니다.

 

 

설명

  • fetch(url, options): 요청할 URL과 추가 옵션을 전달하여 데이터를 가져옵니다. GET 요청의 경우 기본 설정으로 사용하면 되고, POST 요청의 경우 method, headers, body 옵션을 추가합니다.
  • .then(response => response.json()): 응답을 JSON 형식으로 변환합니다.
  • .catch(error => ...): 요청이 실패했을 때의 에러를 처리합니다.

 

3. jQuery를 사용한 AJAX 요청

jQuery 라이브러리를 사용하면 AJAX 요청이 간편해집니다. $.ajax 메서드를 통해 요청을 설정하고, success와 error 콜백을 정의할 수 있습니다.

 

 

설명

  • url: 요청할 서버 URL을 지정합니다.
  • type: 요청 방식으로, GET, POST 등을 설정합니다.
  • contentType: 서버에 전송할 데이터의 형식을 지정합니다. JSON 데이터를 전송하려면 application/json으로 설정합니다.
  • data: 전송할 데이터를 지정합니다. POST 요청의 경우 JSON 데이터를 문자열로 변환하여 전송합니다.
  • **success**와 error: 요청 성공 및 실패 시 실행할 콜백 함수를 설정합니다.

추가 팁

  • 응답 상태 코드 처리: 각 방식에서 응답 상태 코드(예: 200, 404, 500)에 따라 성공/실패를 처리합니다.
  • CORS: AJAX 요청 시 CORS(Cross-Origin Resource Sharing) 정책에 주의해야 합니다. 다른 도메인에서 데이터를 가져오려면 서버에서 CORS를 허용해야 합니다.
  • 비동기 처리: AJAX는 비동기 처리되므로, 데이터가 완료되기 전에 다음 코드가 실행될 수 있습니다. Promise, async/await 등을 사용하여 비동기 처리를 쉽게 할 수 있습니다.
반응형

C++ 에서 사용하는 Mutex 로 제공하는데, 사용할 때마다 사용 예제를 한번씩 살펴보게 되어 정리해 보았습니다.

std::lock_guard는 C++에서 여러 스레드가 공유하는 리소스에 대한 동기화를 쉽게 관리할 수 있게 해주는 클래스입니다. std::lock_guard는 생성될 때 mutex를 잠그고, 범위를 벗어나면 자동으로 mutex를 해제하여, 수동으로 잠금을 관리할 필요가 없게 만들어줍니다.

다음은 std::lock_guard를 사용한 예제입니다:

 
예제 코드

 

 

코드 상세 설명

  1. Mutex 선언 (std::mutex mtx;)
    mtx는 std::mutex 타입의 객체로, 프로그램 내에서 공유 자원을 안전하게 보호하기 위한 목적으로 사용됩니다. 이 mtx 객체는 잠금(Lock)과 해제(Unlock) 기능을 제공하여 하나의 스레드만 특정 코드 구간에 접근하도록 보장합니다.
  2. std::lock_guard 선언 (std::lock_guard<std::mutex> lock(mtx);)
    • std::lock_guard는 lock 객체가 생성되면서 mtx를 잠급니다. 이로 인해 다른 스레드가 print_numbers 함수에서 mtx를 사용하려고 하면, lock이 해제될 때까지 기다리게 됩니다.
    • lock은 print_numbers 함수가 끝날 때(즉, 스코프를 벗어날 때) 자동으로 소멸됩니다. std::lock_guard의 소멸자(destructor)가 호출되면서 mtx가 자동으로 해제됩니다. 이를 통해 우리가 직접 mtx.unlock()를 호출할 필요가 없어, 코드가 간결해지고 오류를 줄일 수 있습니다.
  3. 스레드 생성 (std::thread t1(print_numbers, 1); std::thread t2(print_numbers, 2);)
    • std::thread를 이용해 두 개의 스레드 t1과 t2를 생성합니다.
    • 각 스레드는 print_numbers 함수의 복사본을 실행하며, id 매개변수를 통해 구분됩니다(첫 번째 스레드는 id가 1이고, 두 번째 스레드는 2).
  4. 출력
    • 두 스레드가 실행되면, std::cout으로 1부터 5까지의 숫자를 출력하게 됩니다.
    • 스레드가 공유 자원인 std::cout에 접근할 때 std::lock_guard가 mtx를 잠그므로, 한 스레드가 std::cout을 통해 출력 중이면 다른 스레드는 대기합니다.
    • 만약 std::lock_guard가 없었다면, 두 스레드가 동시에 std::cout에 접근할 수 있어 출력이 섞이거나 예기치 못한 결과가 발생할 수 있습니다.
  5. 스레드 종료 대기 (t1.join(); t2.join();)
    • t1.join()과 t2.join()은 main 함수가 두 스레드가 끝날 때까지 기다리도록 합니다.
    • join을 호출하지 않으면, main 함수가 스레드가 끝나기 전에 종료될 수 있습니다.

 

std::lock_guard가 필요한 이유

  • 안전한 동시성 보장: std::lock_guard는 스레드가 공유 자원에 접근할 때, 다른 스레드가 해당 자원에 접근하지 못하게 막아줍니다. 이를 통해 스레드 간 충돌을 방지하고 데이터 무결성을 유지합니다.
  • 자동 해제: std::lock_guard는 스코프를 벗어날 때 자동으로 mutex를 해제하므로, 실수로 unlock을 호출하지 않거나, 예외 상황에서 해제를 누락하는 등의 문제를 예방합니다.

이 예제에서는 print_numbers 함수 내의 std::cout 출력을 동기화해, 두 스레드의 출력이 섞이지 않도록 보장하고 있습니다.

반응형

std::vector는 C++ 표준 라이브러리에서 제공하는 동적 배열 클래스입니다. 크기가 가변적이며, 요소 추가 및 삭제 시 자동으로 크기를 조정합니다. std::vector는 내부적으로 연속적인 메모리 블록에 데이터를 저장하므로, 요소에 대한 임의 접근이 빠릅니다.

 

주요 특징

  1. 동적 크기 조정: 필요에 따라 크기를 자동으로 조정합니다.
  2. 임의 접근: 배열처럼 인덱스를 사용하여 요소에 빠르게 접근할 수 있습니다.
  3. 메모리 관리: 메모리 할당 및 해제를 자동으로 처리합니다.
  4. 유연한 사용: 다양한 편의 메서드(push_back, pop_back 등)를 제공하여 사용이 간편합니다.

 

예제

 

 

주요 메서드

  • push_back(value): 벡터 끝에 요소를 추가합니다.
  • pop_back(): 벡터 끝의 요소를 제거합니다.
  • size(): 벡터의 현재 크기를 반환합니다.
  • capacity(): 벡터가 메모리를 재할당하지 않고 저장할 수 있는 최대 요소 수를 반환합니다.
  • empty(): 벡터가 비어 있는지 확인합니다.
  • clear(): 벡터의 모든 요소를 제거합니다.
  • at(index): 인덱스를 사용하여 요소에 접근합니다(범위 검사 포함).

 

장점

  • 배열과 달리 크기를 미리 알 필요가 없습니다.
  • 메모리 관리를 신경 쓸 필요가 없습니다.

 

단점

  • 메모리 재할당 시 성능이 저하될 수 있습니다.
  • 배열보다 메모리 오버헤드가 더 클 수 있습니다.

std::vector는 C++에서 유용하고 많이 사용되는 컨테이너로, 대부분의 상황에서 배열보다 더 유연하게 사용할 수 있습니다.

반응형
 
현대차증권(Hyundai Motor Securities)은 현대자동차그룹의 금융 계열사로, 다양한 금융 서비스를 제공하는 종합 증권사입니다. 1974년에 설립되어, 현재는 현대차그룹의 일원으로서 자산 관리, 기업 금융, 투자 은행(IB), 주식 및 채권 거래 등 폭넓은 금융 서비스를 고객에게 제공합니다. 현대차증권은 모기업인 현대자동차와 시너지를 낼 수 있는 여러 장점이 있습니다. 현대차증권의 주요 서비스 및 기능, 그리고 회사의 특징을 좀 더 자세히 살펴보겠습니다.

1. 주요 서비스

a. 주식 및 채권 거래

  • 주식 거래: 고객이 주식에 투자할 수 있도록 주식 매매 서비스를 제공합니다. 이를 통해 개인 투자자는 국내 주식뿐만 아니라 해외 주식도 거래할 수 있습니다.
  • 채권 거래: 정부채, 기업채 등 다양한 채권 상품에 대한 매매 및 투자 서비스도 제공하고 있습니다.

b. 자산 관리

  • 개인 자산 관리: 현대차증권은 개인 투자자를 위한 맞춤형 자산 관리 서비스를 제공합니다. 고객의 투자 성향과 재정 목표에 맞는 포트폴리오를 구성하고, 지속적으로 관리 및 리밸런싱을 통해 고객의 자산을 성장시키는 것을 목표로 합니다.
  • 투자 상품: 주식, 채권, 펀드, 파생상품 등 다양한 투자 상품을 제공하며, 고객에게 포트폴리오 다각화와 리스크 관리가 이루어지도록 돕습니다.

c. 기업금융 (Investment Banking, IB)

  • 상장(IPO): 기업이 자본 시장에서 자금을 조달하기 위해 상장(IPO)하는 과정을 지원합니다. 기업의 주식 공개 및 공모 주식 발행을 포함한 다양한 서비스를 제공합니다.
  • M&A (인수합병): 기업 간 인수합병(M&A) 자문과 구조조정 관련 서비스를 제공합니다. 자금 조달, 거래 구조 설계 및 협상 등 전반적인 M&A 과정에 대한 지원을 합니다.
  • 기업 자문 서비스: 기업이 자본 시장에서 전략적 결정을 내리는 데 필요한 분석 및 자문 서비스를 제공하며, 재무 구조 개선 및 자산 관리에도 관여합니다.

d. 리서치 및 분석

현대차증권은 리서치팀을 통해 주식, 채권, 파생상품 등 다양한 자산에 대한 시장 분석투자 리포트를 제공합니다. 이를 통해 투자자들은 최신 시장 동향과 개별 종목에 대한 깊이 있는 분석을 바탕으로 투자 결정을 내릴 수 있습니다.

2. 디지털 플랫폼

현대차증권은 디지털화를 적극적으로 추진하고 있으며, 고객들이 모바일 앱과 온라인 플랫폼을 통해 쉽고 편리하게 투자 및 거래를 할 수 있도록 다양한 서비스를 제공합니다. 예를 들어, Hyundai Motor Securities App을 통해 실시간 주식 거래, 펀드 가입, 계좌 관리 등을 할 수 있으며, 다양한 투자 정보와 리서치 자료도 제공합니다.

3. 글로벌 네트워크

현대차증권은 현대차그룹의 글로벌 네트워크를 활용하여 해외 투자자와의 협업 및 해외 시장에 대한 진출을 강화하고 있습니다. 이를 통해 국내 투자자에게는 해외 시장에 대한 접근을, 해외 투자자에게는 한국 시장에 대한 투자 기회를 제공하고 있습니다.

4. 현대차증권의 강점

a. 현대자동차그룹의 배경

현대차증권은 현대자동차그룹의 금융 계열사로, 그 그룹의 산업적 기반과 안정성을 바탕으로 금융 시장에서 신뢰를 쌓고 있습니다. 특히, 자동차 산업의 동향과 그룹 내 다른 사업 부문과의 협력을 통해 다양한 비즈니스 모델을 발전시킬 수 있는 장점이 있습니다.

b. 안정성 & 신뢰성

현대차증권은 자본금과 재정적인 안정성을 바탕으로 투자자들에게 신뢰를 주고 있으며, 고객의 자산을 안정적으로 관리하는 데 집중하고 있습니다.

c. 전문성 및 글로벌 역량

현대차증권은 금융업계에서 다년간 쌓은 경험과 노하우를 바탕으로, 투자은행(IB), 자산 관리, 주식 및 채권 거래, 리서치 등 다양한 분야에서 전문적인 서비스를 제공합니다. 또한, 현대차그룹의 글로벌 네트워크를 활용해 해외 시장에 대한 전문성도 갖추고 있습니다.

5. 주요 사업 부문

  • Retail(소매영업): 개인 투자자 및 고객을 대상으로 한 투자 서비스와 상품을 제공합니다.
  • Wholesale(도매영업): 기관 투자자 및 기업 고객을 대상으로 하는 금융 서비스와 자문을 제공합니다.
  • 자산 관리: 투자자의 자산을 효율적으로 관리하고 운용할 수 있도록 돕는 서비스입니다.

6. 사회적 책임 및 ESG

현대차증권은 최근 ESG (환경, 사회, 지배구조) 분야에 대한 관심을 높이고 있으며, ESG 투자를 포함한 지속 가능한 금융 서비스를 제공하고 있습니다. ESG 관련 투자 상품 및 리서치를 제공하며, 사회적 책임을 다하는 금융기관으로서의 역할을 강화하고 있습니다.

결론

현대차증권은 현대차그룹의 금융계열사로서, 안정적인 자금력과 글로벌 네트워크를 기반으로 다양한 금융 서비스를 제공합니다. 증권 거래, 기업금융, 자산 관리 등 여러 분야에서 종합적인 금융 솔루션을 제공하며, 디지털 플랫폼과 리서치 서비스를 통해 고객들에게 유용한 투자 정보를 제공합니다.

'Economy > 주식' 카테고리의 다른 글

[주식]KB금융(22/10/20)  (0) 2022.10.20
[주식] PBR  (0) 2021.08.04
반응형

10T 황금왕의 재보 - 라크리마 재료
09T 첨탑의 심연 - 감정주문서
08T 푸르의 지하미궁 - 카오스 티어 스톤
07T 데네브의 파도 - 아티팩트 에센스
06T 칼리코다르의 악몽 - 현상수배 재료,주화
05T 도굴왕의 지하 창고
04T 혼돈의 말로 프론트 - 금괴, 세공된 조각상
03T 저주받은 감옥 - 경험치
02T 은둔자의 용광로 - 크래프팅 재료
01T 탈주자의 경작지 - 룬 및 룬 에센스
01T 환영 정원 - 기억의 룬

'Games > 언디셈버' 카테고리의 다른 글

[언디셈버] 강화 단계별 챔피언 출현율  (0) 2024.11.19
반응형

현재가 기준 46400

2022 년 예상 현재가 기준 수치

- PER : 4.05

- PBR : 0.38

- EPS : 11,827

- BPS : 127,728

- DPS : 3,273

- 배당률 : 6.83%

2021 년 확정 수치

- PER : 4.52

- PBR : 0.39

- EPS : 10,605

- BPS : 121,808

- DPS : 2,940

- 배당률 : 6.14%

 

 

'Economy > 주식' 카테고리의 다른 글

[주식]현대차증권  (1) 2024.11.06
[주식] PBR  (0) 2021.08.04
반응형

[마노스 귀걸이]

순수한 바나듐 결정 100

마노스석 5

그을린파편10 / 마력의파편40

매혹의정수10

 - 매혹의열매2, 어둠의가루2, 물푸레나무수액4, 화염비늘꽃3

 

[마노스 목걸이]

순수한 티타늄 결정 100

마노스석 5

그을린파편10 / 마력의파편40

태양의정수10

 - 태양의열매2, 대지의흔적2, 소나무수액4, 화살버섯3

 

[마노스 반지]

순수한 바나듐 결정 100

마노스석 5

그을린파편10 / 마력의파편40

풍요의정수10

 - 풍요의열매2, 비상의흔적2, 자작나무수액4, 구름버섯3

 

[마노스 허리띠]

순수한 티타늄 결정 100

마노스석 5

그을린파편10 / 마력의파편40

홍염의정수10

 - 홍염의열매2, 비상의흔적2, 물푸레수액4, 난쟁이버섯3

반응형

주식의 고평가를 알기 위한 가장 기본적인 용어이다

벤자민 그레이엄이 회사의 저평가를 평가하기 위해 사용한 지표이다.

 

PBR의 정의는 주가를 한 주당 순자산으로 나눈 것!

 

예를들어, 한 회사의 전체 자산이 100억이고, 전체 주식 발행수가 1억주라면 한주당 현시점에서의 자산가치는

100원이라고 할 수 있다.

이 때, 주가가 100원이라면 현 주가와, 1주의 실질적 자산가치는 동일하다고 할 수 있고,

이 때 PBR 은 1이 된다.

주가가 200원이라면 PBR 은 2이고, 주가가 50원이라면 PBR은 0.5이다.

즉 PBR 이 낮을수록 회사의 순자산 대비 주가가 저평가 되었다고 할 수 있을 것이다.

 

밴자민 그레이엄의 경우 PBR 4 이상의 주식은 신중하게 접근해야 한다고 했는데

2021/08/04 일 현재 카카오의 PBR은 9.67이고, 삼성전자는 2.12, 한국전력은 무려 0.24 이다.

한국전력의 경우 현재 순자산 대비 1/4이 현주가라는 이야기인데, 자산가치로만 보면

상당히 저평가되어 있다고 볼 수 있다.

아마도 정치리스크 때문이 아닐까....

 

'Economy > 주식' 카테고리의 다른 글

[주식]현대차증권  (1) 2024.11.06
[주식]KB금융(22/10/20)  (0) 2022.10.20
반응형

라인 드로우를 구현할때, openGL, DX, winDC 등을 사용할 수 없는경우,

바닥부터 맨땅에 코딩을 해야하는 경우가 생기더라.

그때를 위한 참고용 코드.

 

Void DrawLine(int x1, int y1, int x2, int y2)
{
    int aX=0, aY=0;
    int cnt = 0;
    int dx = x2-x1;
    int dy = y2-y1;

    if(dx < 0) {addX = -1; dx = -dx;}
    else addX = 1;
    if(dy < 0) {addY = -1; dy = -dy;}
    else addY = 1;
    
    int x = x1;
    int y = y1;
    if(dx >= dy)
    {
        for(int i = 0 ; i < dx ; i++)
        {
            x += addX;
            cnt += dy;
            if(cnt >= dx)
            {
                y += addY; cnt -= dx;
            }
            drawPoint(x,y);
        }
    }
    else
    {
        for(int i = 0 ; i < dy ; i++)
        {
            y+= addY;
            cnt += dx;
            if(cnt >= dy)
            {
                x += addX; cnt -= dy;
            }
            darwPoint(x,y);
        }
    }
}

 

 

반응형

Ctrl+G

+ Recent posts