블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

동차 보험 가격 비교 - 하이카 다이렉트 vs 삼성화재 애니카

인터넷 가입기준입니다.

삼성화재 애니카가 약 3만원 정도 저렴하네요.

긴급견인 거리와 방법에 있어 약간 차이가 있으니, 주의하시기 바랍니다.


하이카 다이렉트







삼성화재 애니카





Posted by 안녕1999
, |

왕소라형 과자

580kcal

1000원

평가 : 고열량 식품. 비상식량. 이에 자꾸 붙어서, 치아가 흔들릴듯...





코코넛 초코렛타

410.8kcal

1500원

평가 : 바나나킥에 초코렛 발라놓은....코코넛 가루가 약간 씹힘. 많이 비쌈.






Posted by 안녕1999
, |

로얄 초코쿠키

360kcal

1000원

평가 : 보통





에멘탈 치즈쿠키

370kcal

1000원

평가 : 모양 이쁨. 버터쿠키 맛, 몇개 안들어 있음. 구멍 슝슝 뚤린 치즈.





코코넛 쿠키

385kcal

1200원

평가 : 보통. 왜 비싼지 모르겠단...











Posted by 안녕1999
, |

CPU 제조사, 모델명, 지원되는 기능을 볼 수 있습니다.


cpu.zip


Vendor=GenuineIntel

Brand=Intel(R) Core(TM)2 Duo C6600  @ 2.20GHz

CLFSH

CMPXCHG16B

CX8

FXSR

LAHF

MMX

MONITOR

MSR

OSXSAVE

SEP

SSE

SSE2

SSE3

SSE4.1

SSSE3

XSAVE

Posted by 안녕1999
, |

SSE SIMD link

C언어,ARM / 2016. 5. 3. 23:50

A practical guide to SSE SIMD with C++

http://sci.tuomastonteri.fi/programming/sse



Intel SSE Tutorial : An Introduction to the SSE Instruction Set

http://neilkemp.us/src/sse_tutorial/sse_tutorial.html




Posted by 안녕1999
, |

VC++6.0에서 __cpuid, __cpuidex 함수를 사용할 수 없다는 글이 있어, 작성해보았다.

인터넷은 역시나 위대하다.

내가 생각한것은 그 누군가 먼저 생각한 사람이 있다.


안된다고 생각해보기전에, 한번 더 생각해보자.

"누가 ..하더라"와 같은 "카더라"통신은 맹신하지 말자.






http://stackoverflow.com/questions/1666093/cpuid-implementations-in-c


void __cpuid(int CPUInfo[4], int InfoType)
{
 __asm 
  {
     mov    esi, CPUInfo
     mov    eax, InfoType
     xor    ecx, ecx  
     cpuid  
     mov    dword ptr [esi +  0], eax
     mov    dword ptr [esi +  4], ebx  
     mov    dword ptr [esi +  8], ecx  
     mov    dword ptr [esi + 12], edx  
  }
}
void __cpuidex(int CPUInfo[4], int InfoType, int ECXValue)
{
 __asm 
  {
     mov    esi, CPUInfo
     mov    eax, InfoType
     mov    ecx, ECXValue
     cpuid  
     mov    dword ptr [esi +  0], eax
     mov    dword ptr [esi +  4], ebx  
     mov    dword ptr [esi +  8], ecx  
     mov    dword ptr [esi + 12], edx  
  }
}

https://msdn.microsoft.com/ko-kr/library/hskdteyh.aspx



CPU정보(사용가능한 기능 목록)을 얻는 샘플을 VC++6.0에서 동작가능하도록 작성해보았다.



#ifndef __cpuid_H

#define __cpuid_H


//myj22000@naver.com


void __cpuid(int CPUInfo[4],int InfoType);

void __cpuidex(int CPUInfo[4],int InfoType,int ECXValue);


class CPU_InstructionSet_Internal

{

public:

int bisIntel;

int bisAMD;

char vendor[0x20];

char brand[0x40];

unsigned int f_1_ECX,f_1_EDX,f_7_EBX,f_7_ECX,nExIds,f_81_ECX,f_81_EDX;


    CPU_InstructionSet_Internal();

};


#ifndef get_bit

#define get_bit(a,i) ((bool)(((a)>>(i))&1))

#endif


class CPU_InstructionSet

{

public:

    CPU_InstructionSet_Internal m_cpu;


    char *Vendor(void){return m_cpu.vendor;}

    char *Brand(void){return m_cpu.brand;}


    bool SSE3(void){return get_bit(m_cpu.f_1_ECX,0);}

    bool PCLMULQDQ(void){return get_bit(m_cpu.f_1_ECX,1);}

    bool MONITOR(void){return get_bit(m_cpu.f_1_ECX,3);}

    bool SSSE3(void){return get_bit(m_cpu.f_1_ECX,9);}

    bool FMA(void){return get_bit(m_cpu.f_1_ECX,12);}

    bool CMPXCHG16B(void){return get_bit(m_cpu.f_1_ECX,13);}

    bool SSE41(void){return get_bit(m_cpu.f_1_ECX,19);}

    bool SSE42(void){return get_bit(m_cpu.f_1_ECX,20);}

    bool MOVBE(void){return get_bit(m_cpu.f_1_ECX,22);}

    bool POPCNT(void){return get_bit(m_cpu.f_1_ECX,23);}

    bool AES(void){return get_bit(m_cpu.f_1_ECX,25);}

    bool XSAVE(void){return get_bit(m_cpu.f_1_ECX,26);}

    bool OSXSAVE(void){return get_bit(m_cpu.f_1_ECX,27);}

    bool AVX(void){return get_bit(m_cpu.f_1_ECX,28);}

    bool F16C(void){return get_bit(m_cpu.f_1_ECX,29);}

    bool RDRAND(void){return get_bit(m_cpu.f_1_ECX,30);}


    bool MSR(void){return get_bit(m_cpu.f_1_EDX,5);}

    bool CX8(void){return get_bit(m_cpu.f_1_EDX,8);}

    bool SEP(void){return get_bit(m_cpu.f_1_EDX,11);}

    bool CMOV(void){return get_bit(m_cpu.f_1_EDX,15);}

    bool CLFSH(void){return get_bit(m_cpu.f_1_EDX,19);}

    bool MMX(void){return get_bit(m_cpu.f_1_EDX,23);}

    bool FXSR(void){return get_bit(m_cpu.f_1_EDX,24);}

    bool SSE(void){return get_bit(m_cpu.f_1_EDX,25);}

    bool SSE2(void){return get_bit(m_cpu.f_1_EDX,26);}


    bool FSGSBASE(void){return get_bit(m_cpu.f_7_EBX,0);}

    bool BMI1(void){return get_bit(m_cpu.f_7_EBX,3);}

    bool HLE(void){return m_cpu.bisIntel && get_bit(m_cpu.f_7_EBX,4);}

    bool AVX2(void){return get_bit(m_cpu.f_7_EBX,5);}

    bool BMI2(void){return get_bit(m_cpu.f_7_EBX,8);}

    bool ERMS(void){return get_bit(m_cpu.f_7_EBX,9);}

    bool INVPCID(void){return get_bit(m_cpu.f_7_EBX,10);}

    bool RTM(void){return m_cpu.bisIntel && get_bit(m_cpu.f_7_EBX,11);}

    bool AVX512F(void){return get_bit(m_cpu.f_7_EBX,16);}

    bool RDSEED(void){return get_bit(m_cpu.f_7_EBX,18);}

    bool ADX(void){return get_bit(m_cpu.f_7_EBX,19);}

    bool AVX512PF(void){return get_bit(m_cpu.f_7_EBX,26);}

    bool AVX512ER(void){return get_bit(m_cpu.f_7_EBX,27);}

    bool AVX512CD(void){return get_bit(m_cpu.f_7_EBX,28);}

    bool SHA(void){return get_bit(m_cpu.f_7_EBX,29);}


    bool PREFETCHWT1(void){return get_bit(m_cpu.f_7_ECX,0);}


    bool LAHF(void){return get_bit(m_cpu.f_81_ECX,0);}

    bool LZCNT(void){return m_cpu.bisIntel && get_bit(m_cpu.f_81_ECX,5);}

    bool ABM(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_ECX,5);}

    bool SSE4a(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_ECX,6);}

    bool XOP(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_ECX,11);}

    bool TBM(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_ECX,21);}


    bool SYSCALL(void){return m_cpu.bisIntel && get_bit(m_cpu.f_81_EDX,11);}

    bool MMXEXT(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_EDX,22);}

    bool RDTSCP(void){return m_cpu.bisIntel && get_bit(m_cpu.f_81_EDX,27);}

    bool _3DNOWEXT(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_EDX,30);}

    bool _3DNOW(void){return m_cpu.bisAMD && get_bit(m_cpu.f_81_EDX,31);}

};

char *get_CPU_InstructionStr(char *buf);

#endif



#include "__cpuid.h"

//#include <stdio.h>

//#include <Windows.h>

void __cpuid(int CPUInfo[4],int InfoType)

{

__asm 

{

mov esi, CPUInfo

mov eax, InfoType

xor ecx, ecx  

cpuid  

mov dword ptr[esi+0], eax

mov dword ptr[esi+4], ebx  

mov dword ptr[esi+8], ecx  

mov dword ptr[esi+12], edx  

}

}

void __cpuidex(int CPUInfo[4],int InfoType,int ECXValue)

{

__asm

{

mov esi, CPUInfo

mov eax, InfoType

mov ecx, ECXValue

cpuid  

mov dword ptr[esi+0], eax

mov dword ptr[esi+4], ebx  

mov dword ptr[esi+8], ecx  

mov dword ptr[esi+12], edx  

}

}

#include "STRING.H"

CPU_InstructionSet_Internal::CPU_InstructionSet_Internal()

{

unsigned int *p;int cpui[4];int number_of_the_function_ID;

vendor[0]=0;

brand[0]=0;


    // Calling __cpuid with 0x0 as the function_id argument

    // gets the number of the highest valid function ID.

    __cpuid(cpui,0);

    number_of_the_function_ID = cpui[0];


    __cpuidex(cpui,0,0);

p=(unsigned int *)vendor;

p[0]=cpui[1];

p[1]=cpui[3];//순서주의

p[2]=cpui[2];

vendor[12]=0;

    

    bisIntel=(strcmp(vendor,"GenuineIntel")==0);

    bisAMD=(strcmp(vendor,"AuthenticAMD")==0);


    // load bitset with flags for function 0x00000001

    if (number_of_the_function_ID >= 1)

    {

__cpuidex(cpui,1,0);

        f_1_ECX = cpui[2];

        f_1_EDX = cpui[3];

    }


    // load bitset with flags for function 0x00000007

    if (number_of_the_function_ID >= 7)

    {

__cpuidex(cpui,7,0);

        f_7_EBX = cpui[1];

        f_7_ECX = cpui[2];

    }


    // Calling __cpuid with 0x80000000 as the function_id argument

    // gets the number of the highest valid extended ID.

    __cpuid(cpui,0x80000000);

    nExIds=(unsigned int)cpui[0];


    // load bitset with flags for function 0x80000001

    if (nExIds >= 0x80000001)

    {

__cpuidex(cpui,0x80000001,0);

        f_81_ECX = cpui[2];

        f_81_EDX = cpui[3];

    }


    // Interpret CPU brand string if reported

    if (nExIds >= 0x80000004)

    {

p=(unsigned int *)brand;

__cpuidex((int*)&(brand[0]),0x80000002,0);

        __cpuidex((int*)&(brand[16]),0x80000003,0);

        __cpuidex((int*)&(brand[24]),0x80000004,0);

        brand[12*4]=0;

    }

};


#include "stdio.h"

/*

Vendor=GenuineIntel

Brand=Intel(R) Core(TM)2 Duo C6600  @ 2.20GHz

CLFSH

CMPXCHG16B

CX8

FXSR

LAHF

MMX

MONITOR

MSR

OSXSAVE

SEP

SSE

SSE2

SSE3

SSE4.1

SSSE3

XSAVE

*/

char *get_CPU_InstructionStr(char *buf)

{

CPU_InstructionSet cpu;char *p;


p=buf;

    p+=sprintf(p,"Vendor=%s\r\n",cpu.Vendor());

p+=sprintf(p,"Brand=%s\r\n\r\n",cpu.Brand());

    

    if(cpu._3DNOW())strcat(p,"3DNOW\r\n");

    if(cpu._3DNOWEXT())strcat(p,"3DNOWEXT\r\n");

    if(cpu.ABM())strcat(p,"ABM\r\n");

    if(cpu.ADX())strcat(p,"ADX\r\n");

    if(cpu.AES())strcat(p,"AES\r\n");

    if(cpu.AVX())strcat(p,"AVX\r\n");

    if(cpu.AVX2())strcat(p,"AVX2\r\n");

    if(cpu.AVX512CD())strcat(p,"AVX512CD\r\n");

    if(cpu.AVX512ER())strcat(p,"AVX512ER\r\n");

    if(cpu.AVX512F())strcat(p,"AVX512F\r\n");

    if(cpu.AVX512PF())strcat(p,"AVX512PF\r\n");

    if(cpu.BMI1())strcat(p,"BMI1\r\n");

    if(cpu.BMI2())strcat(p,"BMI2\r\n");

    if(cpu.CLFSH())strcat(p,"CLFSH\r\n");

    if(cpu.CMPXCHG16B())strcat(p,"CMPXCHG16B\r\n");

    if(cpu.CX8())strcat(p,"CX8\r\n");

    if(cpu.ERMS())strcat(p,"ERMS\r\n");

    if(cpu.F16C())strcat(p,"F16C\r\n");

    if(cpu.FMA())strcat(p,"FMA\r\n");

    if(cpu.FSGSBASE())strcat(p,"FSGSBASE\r\n");

    if(cpu.FXSR())strcat(p,"FXSR\r\n");

    if(cpu.HLE())strcat(p,"HLE\r\n");

    if(cpu.INVPCID())strcat(p,"INVPCID\r\n");

    if(cpu.LAHF())strcat(p,"LAHF\r\n");

    if(cpu.LZCNT())strcat(p,"LZCNT\r\n");

    if(cpu.MMX())strcat(p,"MMX\r\n");

    if(cpu.MMXEXT())strcat(p,"MMXEXT\r\n");

    if(cpu.MONITOR())strcat(p,"MONITOR\r\n");

    if(cpu.MOVBE())strcat(p,"MOVBE\r\n");

    if(cpu.MSR())strcat(p,"MSR\r\n");

    if(cpu.OSXSAVE())strcat(p,"OSXSAVE\r\n");

    if(cpu.PCLMULQDQ())strcat(p,"PCLMULQDQ\r\n");

    if(cpu.POPCNT())strcat(p,"POPCNT\r\n");

    if(cpu.PREFETCHWT1())strcat(p,"PREFETCHWT1\r\n");

    if(cpu.RDRAND())strcat(p,"RDRAND\r\n");

    if(cpu.RDSEED())strcat(p,"RDSEED\r\n");

    if(cpu.RDTSCP())strcat(p,"RDTSCP\r\n");

    if(cpu.RTM())strcat(p,"RTM\r\n");

    if(cpu.SEP())strcat(p,"SEP\r\n");

    if(cpu.SHA())strcat(p,"SHA\r\n");

    if(cpu.SSE())strcat(p,"SSE\r\n");

    if(cpu.SSE2())strcat(p,"SSE2\r\n");

    if(cpu.SSE3())strcat(p,"SSE3\r\n");

    if(cpu.SSE41())strcat(p,"SSE4.1\r\n");

    if(cpu.SSE42())strcat(p,"SSE4.2\r\n");

    if(cpu.SSE4a())strcat(p,"SSE4a\r\n");

    if(cpu.SSSE3())strcat(p,"SSSE3\r\n");

    if(cpu.SYSCALL())strcat(p,"SYSCALL\r\n");

    if(cpu.TBM())strcat(p,"TBM\r\n");

    if(cpu.XOP())strcat(p,"XOP\r\n");

    if(cpu.XSAVE())strcat(p,"XSAVE\r\n");

//printf(buf);

return buf;

}



cpu.zip



Posted by 안녕1999
, |


1. 보다 안전한 프로그래밍

     =>대부분의 프로그램은 보안이 필요없다. 일부 프로그램만 보안이 요구된다.

         해커가 귀한 시간을 들여, 당신의 프로그램을 해킹할 이유는 매우 적어 보인다.

         대부분 쓸데없는 걱정


2. 유니코드 프로그래밍

    =>VC++ 6.0으로도 유니코드 프로그래밍을 할 수 있다.


3. 보다 뛰어난 인텔리센스

    =>프로그램 작성에 큰 영향은 없다.

        응용프로그램의 성능과는 관련이 없다.


4. STL의 (거의) 완벽한 지원

    =>VC++6.0도 STL 사용할 수 있다.

        나는 STL 사용안함.


5. 뛰어난 IDE 매크로 사용

    =>장인이 연장탓을 하는듯...

        응용프로그램의 성능과는 관련이 없다.


6. 더 훌륭해진 컴파일러

    =>컴파일러가 훌륭해진다고, 당신의 프로그램도 크게 훌륭해지기는 어렵다.


7. 더 괜찮아진 IDE

    =>프로그램 사용자는 IDE가 무엇인지 모른다.

       VC++6.0을 사용하는 이유중에 하나는 최신 IDE가 너무 무겁기때문이다.

        응용프로그램의 성능과는 관련이 없다.


8. 멀티 코어의 사용

    =>프로그램에서 멀티코어를 사용하려면, 쓰레드로 돌리면 된다.

        컴파일을 빠르게하려면, 라이브러리를 사용해라. 멀티코어 컴파일보다 훨씬 빠르다.

        응용프로그램의 성능과는 관련이 없다.


9. MFC/ATL의 변화

    =>VC++6.0의 MFC도 충분하다.나는 ALT은 사용하지 않는다.


10. __cpuid

    =>대부분의 프로그램은 사용할 이유가 거의 없다.

       게임, 그래픽, 오디오, 비디오등 고성능이 요구되는 프로그램에서 필요할 수 있다.(반드시 필요한 것은 아니다)

       참조 : "VC++6.0에서 __cpuid, __cpuidex 함수 구현"


11. SIMD  명령

    =>대부분의 프로그램은 사용할 이유가 거의 없다.

       게임, 그래픽, 오디오, 비디오등 고성능이 요구되는 프로그램에서 필요하다.

       어셈블러를 직접 입력하는 방식으로 프로그램이 가능해 보인다.

       참조 : ASM코드를 직접 대입하는 방법


12. 64bit 프로그램

    =>대부분의 프로그램은 사용할 이유가 거의 없다.

       게임, 그래픽, 오디오, 비디오등 고성능이 요구되는 프로그램에서 필요하다.

       아직까지는 32bit 프로그램이 호환성이 더 좋다(?)

       




art.oriented : VC++ 6.0을 쓰지 말아야하는 이유

minjang.egloos.com/1783328
2008. 3. 6. - 댓글 84 - ‎작성자 40
정말로 VC++ 6.0을 써야만 하는 절대절명의 이유가 있는지 정말 궁금하다. 왜 VC++ 6.0을 쓰지 말고 최소 VS 2005을 써야하는지 몇 가지만 써보자.

VC++ 6.0을 쓰지 말아야하는 이유 :: DRAKE

drake.kr/364
2010. 8. 24. - 정말로 VC++ 6.0을 써야만 하는 절대절명의 이유가 있는지 정말 궁금하다. 왜 VC++ 6.0을 쓰지 말고 최소 VS 2005을 써야하는지 몇 가지만 써보자.

어린왕자와 여우 : VC 6.0을 쓰지 말아야하는 이유?

tiger5net.egloos.com/4228132
2008. 3. 17. - 이 글을 읽고, VS2008을 쓰긴 쓰되, VC6도 버리지 않았음 한단 생각이 듭니다. VC 6.0을 ... VC++ 6.0을 쓰지 말아야하는 이유 2008/03/17 12:11 ...

VC++6.0을 쓰지 말아야하는 이유 - 변하는 세상..하고싶은게 ...

openarisu.tistory.com/157
2009. 6. 10. - 관련 글을 잊지 않기 위해서 글을 남긴다. 원문 : VC++ 6.0을 쓰지 말아야 하는 이유 상당히 직설적으로 표현을 하고 있다. 내 자신을 다시 한 번 생각 ...

VC++ 6.0을 쓰지 말아야하는 이유 | 마을 :: 컨텐츠 상세보기

www.devpia.com/maeul/contents/Detail.aspx?BoardID=52...20...
VC++ 6.0을 쓰지 말아야하는 이유, 2008-03-14 오후 1:35:11 ... 세미나에서조차도Visual C++ 을 가지고 혼자 개발하는 것에는 세미나가 있지만. Team Suite 이름에 ...

비주얼 스튜디오 - 나무위키

https://namu.wiki/w/비주얼%20스튜디오
5일 전 - 마이크로소프트가 비주얼 스튜디오에 신경을 쓰는 이유는 아무리 ... 다음 글을 반드시 읽어 보도록 하자: VC++ 6.0을 쓰지 말아야하는 이유.

유리짱 :: '전체' 카테고리의 글 목록

dbflwkd.tistory.com/category/?page=8
2009. 9. 3. - 2009.09.03. [팁] .... 2009.09.03. VC2008을 이용한 게임개발 - Game Creator GDK. 2009.09.03. VC++ 6.0을 쓰지 말아야하는 이유. 2009.08.27.

내가 Visual C++ 6를 아직도 쓰는 이유 :: dasomoli는 다솜돌이 ...

blog.dasomoli.org/m/post/view/id/153
2008. 12. 11. - "VC++ 6.0을 쓰지 말아야하는 이유(http://minjang.egloos.com/1783328)" 라는 글을 읽고나서도 나는 별로 VC++ 6를 버리고 싶은 생각이 들지 ...

Orchis의 Old-Home : VC6 에서 VC2005로 이전해야 하는 이유

orchis.egloos.com/1722536
2008. 3. 6. - VC 6.0을 쓰지 말아야하는 이유 이전에 다니던 회사에서 개발하던 프로그램은 VC6 에서 MFC기반으로 개발된 프로젝트였습니다. 코드량도 어마 ...

arozin - Tistory

arozin.tistory.com/
2010. 4. 28. - 드디어 칩에도 레이저 마킹으로 예술을 하려고 하는 Apple! ARM 코어 .... 최근 툴을 쓰면 위와 같은 노가다를 뛸 필요없이 바로 실행되는 코드를 만들 수 있었던 것입니다. ... VC++ 6.0을 사용하지 말아야 하는 이유가 하나 더 늘었군요



Posted by 안녕1999
, |

//ASM코드를 직접 대입하는 방법

/*

15:   void test_asm()

16:   {

00401050   push        ebp

00401051   mov         ebp,esp

00401053   sub         esp,40h

00401056   push        ebx

00401057   push        esi

00401058   push        edi

00401059   lea         edi,[ebp-40h]

0040105C   mov         ecx,10h

00401061   mov         eax,0CCCCCCCCh

00401066   rep stos    dword ptr [edi]

17:       __asm {randasm}

00401068   dec         edx

00401069   inc         ebx

0040106A   dec         ebx

18:       dec_edx;

0040106B   dec         edx

19:       dec_edx;

0040106C   dec         edx

20:   }

0040106D   pop         edi

0040106E   pop         esi

0040106F   pop         ebx

00401070   add         esp,40h

00401073   cmp         ebp,esp

00401075   call        __chkesp (00401740)

0040107A   mov         esp,ebp

0040107C   pop         ebp

0040107D   ret

*/

#define dec_edx __asm _emit 0x4A

#define inc_ebx __asm _emit 0x43

#define dec_ebx __asm _emit 0x4B


#define randasm __asm _emit 0x4A __asm _emit 0x43 __asm _emit 0x4B

void test_asm()

{

//__asm {randasm}

dec_edx;

inc_ebx;

dec_ebx;

}


Posted by 안녕1999
, |

왜 갑자기 태도를 바꾼것일까?

일부 사람들은, 이번 조선소 구조조정을 위해, 양적완화를 통해 세금을 투입하려고 한다고 하네요.

양적완화의 목적이 "조선업 살리기"라고 하는 의견이 있습니다.


양적완화할 경우, 물가가 오르고, 부동산 가격이 오르고, 주가도 오릅니다.

돈 가지고 계신 분들은 손해고, 부동산, 주식등의 실물을 가지고 계신 분들은 이득입니다.

국민의 대부분은 부동산이 없고, 몇천만원의 현금만 보유하고 있으므로, 국민 대부분이 손해를 볼 것입니다.


정부는 누구를 위한 정부인지 모르겠네요.

물론, 조선업이 망하면, 해당지역경제가 파탄이 나고, 그 영향이 다른 지역/부분에도 영향을 끼치는건 당연합니다.

그러나, 과거에도 세금투입으로 살려주었더니, 이익은 저들이 챙기는 행태를 보여왔다는게 일부 사람들의 의견입니다.


저 역시, 세금투입으로 살려봤자, 회생가능성이 없어보입니다.

차라리, 몇개의 조선소를 하나로 대통합하는게 나을지 모르겠습니다.


대부분의 국민들만 손해보는일을, 일부 국민을 위해 하는일은 바람직해 보이지 않습니다.

물론, 회생가능성이 있다면, 해볼만 하지만, 이경우에는 회생가능성은 없어 보입니다.

또한 그냥 돈을 주는게 아닌, 장기로 낮은 이자로 빌려주어야 합니다.(대부분 못받는건지, 안받는건지, 유야무야...)


우리나라도 산업구조를 다시 만들어야할 시기인듯 싶습니다.

조선업 살리기에 투입될 돈이 아니라, 조선업 구조조정에 투입되는것은 괜찮아 보입니다.

그러나, 구조조정 보다는 미래산업 구조개편에 세금을 투입하는게 미래에는 더 바람직해 보입니다.



뉴스
뉴스 검색결과의 이미지
'한국판 양적완화' 입장 바꾼 한은
서울신문 - 6시간 전
한국판 양적완화'에 반대하고 나섰던 한국은행이 2일 입장을 바꿨다. 지난달 29일 처음 '반기'를 ...
‘한국판 양적완화’ 입장 바꾼 한은에 대한 뉴스 더보기

'한국판 양적완화' 입장 바꾼 한은 - 조선일보 - 네이트

news.nate.com/view/20160503n01678?modit=1462229339
사이트의 robots.txt 때문에 검색결과의 설명을 사용할 수 없습니다. 자세히 알아보기

"구조조정에 역할" 입장 바꾼 한국은행 / YTN - YouTube

https://www.youtube.com/watch?v=gJq8F2jM_pg
7시간 전 - 업로더: YTN NEWS
[앵커] 구조조정에 미온적이던 한국은행이 입장을 선회했습니다. 정부가 추진하려는 이른바 '한국판 양적완화'에 대해, 기존에 밝혔던 부정적 ...

"구조조정 역할 적극 수행" 입장 바꾼 '한은' : SBS 뉴스

news.sbs.co.kr/news/endPage.do?news_id=N1003554667
15시간 전 - "구조조정 자금지원을 도와달라"는 정부 요청에 부정적이던 한국은행이 ... 발권력을 동원해 국책 은행의 자본을 늘리는 이른바 한국형 양적 완화 ...

비판 여론에 "구조조정 역할 찾겠다"…입장 바꾼 한은 - 한국경제

www.hankyung.com/news/app/newsview.php?aid=2016050211971
16시간 전 - 한국판 양적 완화'로 포장돼 있지만 실상은 부족한 재정을 돈을 찍어 충당하려는 것 아니냐는 지적이 골자였다. 지난달 29일 윤면식 한은 부총재보가 ...

정부·한은 "구조조정 위한 역할에 이견없다"…한국판 양적완화 ...

www.hankyung.com/news/app/newsview.php?aid=201605020587g
20시간 전 - 한계기업 구조조정을 위한 국책은행 자본확충을 놓고 입장 차이를 보이던 정부와 한국은행이 한목소리를 내.

레드포스트 - 한은한국판양적완화입장바뀌나 - Redpost

redpost.co.kr/search.php?q=한은한국판양적완화입장바뀌나
한국판 양적완화입장 바꾼 한은. 인천공항을 통해 출국하고 있다. 연합뉴스 '한국판 양적완화'에 반대하고 나섰던 한국은행이 2일 입장을 바꿨다. 지난달 29일 처음 ...

한발 물러선 한은… 한숨 돌린 정부 - Google 뉴스

https://news.google.co.kr/news/story?cf=all&hl=ko...
8시간 전 - 한국은행은 박 대통령이 언급한 '한국판 양적완화', 즉 화폐를 더 찍어서 문제가 되는 채권을 더 인수하는 것에 부정적 ... 부정적 태도에서 '필요한 역할을 적극 수행하겠다'며 입장을 완화한 . .... 한국판 양적완화입장 바꾼 한은.

싸그리 픽(Pick)! - '한국판 양적완화' 입장 바꾼 한은

ssagri.co/n/?id=1022976
경제 '한국판 양적완화입장 바꾼 한은. [서울신문]내일 국책銀 자본확충방안 윤곽한은 총재 출국 '한국판 양적완화'에 반대하고 나섰던 한국은행이 2일 입장을 바꿨다.

"구조조정에 역할" 입장 바꾼 한국은행 - News JS

www.newsjs.com/kr/팔...한.../d1ClFR9nCUiEaDMS0rTaK11tV2AiM/
Mon, 02 May 2016 10:38:40 -0700 - YTN"구조조정에 역할" 입장 바꾼 한국은행YTN정부가 추진하려는 이른바 '한국판 양적완화'에 대해, 기존에 밝혔던 부정적 입장 ...


Posted by 안녕1999
, |

//Lib는 ANSI,유니코드 모든 함수가 존재해야하며, APP에서 호출할때, 매크로에 의해, 적당한것이 선택된다.

//(Lib는 ANSI/유니코드 구분이 없다. 둘다 존재해야한다.물론, ANSI나 유니코드 중, 한가지만 사용할 경우에는 프로젝트 변경시, 라이브러리를 매번 다시 컴파일해야 할 수 있다.)

#if defined(_UNICODE) || defined(UNICODE)

#define sListCtlData4 sListCtlData4W

#define ListCtrl_MakeHeader4 ListCtrl_MakeHeader4W

#else

#define sListCtlData4 sListCtlData4A

#define ListCtrl_MakeHeader4 ListCtrl_MakeHeader4A

#endif


Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함