Double, double, oil and trouble

May 29th 2008
From The Economist print edition

Is it “peak oil” or a speculative bubble? Neither, really

AFTER oil hit its recent record of $135 a barrel, consumers and politicians started to lash out in every direction. Fishermen in France have been blockading ports and pouring oil on the roads in protest. British lorry drivers have paraded coffins through London as a token of the imminent demise of the haulage industry. In response, Gordon Brown, Britain's prime minister, is badgering oil bosses to increase production from the North Sea, while Nicolas Sarkozy, the president of France, wants the European Union to suspend taxes on fuel.

In America, too, politicians are haranguing oil bosses and calling for tax cuts. Congress has approved a bill to prevent the government from adding to America's strategic stocks of oil, and is contemplating another to enable American prosecutors to sue the governments of the Organisation of the Petroleum Exporting Countries (OPEC) for market manipulation.

But the most popular scapegoats are “speculators” of the more traditional sort. OPEC itself routinely blames them for high prices. The government of India is so sure that speculation makes commodities dearer that it has banned the trading of futures contracts for some of them (although not oil). Germany's Social Democratic Party proposes an international ban on borrowing to buy oil futures, on the same grounds. Joe Lieberman, chairman of the Senate's Homeland Security Committee, is also mulling regulation of some sort, having concluded that “speculators are responsible for a big part of the commodity price increases”. The assumption underlying such ideas is that a bubble is forming, and that if it were popped, the price of oil would be much lower.

Others assume the reverse: that the price is bound to keep rising indefinitely, since supplies of oil are running short. The majority of the world's crude, according to believers in “peak oil”, has been discovered and is already being exploited. At any rate, the size of new fields is diminishing. So production will soon reach a pinnacle, if it has not done so already, and then quickly decline, no matter what governments do.

As different as these theories are, they share a conviction that something has gone badly wrong with the market for oil. High prices are seen as proof of some sort of breakdown. Yet the evidence suggests that, to the contrary, the rising price is beginning to curb demand and increase supply, just as the textbooks say it should.

Stocks, bonds and barrels

Those who see speculators as the culprits point to the emergence of oil and other commodities as a popular asset class, alongside stocks, bonds and property. Ever more investors are piling into the oil markets, the argument runs, pushing up the price as they do so. The number of transactions involving oil futures on the New York Mercantile Exchange (NYMEX), the biggest market for oil, has almost tripled since 2004. That neatly mirrors a tripling of the price of oil over the same period.

But Jeffrey Harris, the chief economist of the Commodity Futures Trading Commission (CFTC), which regulates NYMEX and other American commodities exchanges, does not see any evidence that the growth of speculation in oil has caused the price to rise. Rising prices, after all, might have been stimulating the growing investment, rather than the other way around. There is no clear correlation between increased speculation and higher prices in commodities markets in general. Despite a continuing flow of investment in nickel, for example, its price has fallen by half over the past year.

By the same token, the prices of several commodities that are not traded on any exchange, and are therefore much harder for speculators to invest in, have risen even faster than that of oil. Deutsche Bank calculates that cadmium, a rare metal, has appreciated twice as much as oil since 2001, for example, and the price of rice has risen fractionally more.

Investment can flood into the oil market without driving up prices because speculators are not buying any actual crude. Instead, they buy contracts for future delivery. When those contracts mature, they either settle them with a cash payment or sell them on to genuine consumers. Either way, no oil is hoarded or somehow kept off the market. The contracts are really a bet about which way the price will go and the number of bets does not affect the amount of oil available. As Mr Harris puts it, there is no limit to the number of “paper barrels” that can be bought and sold.

That makes it harder for a bubble to develop in oil than in the shares of internet firms, say, or in housing, where the supply of the asset is finite. Ultimately, says David Kirsch of PFC Energy, a consultancy, there is only one type of customer for crude: refineries. If speculators on the futures markets get carried away, pushing prices so high that refineries run at a loss, they will simply shut down, causing the price to fall again. Moreover, speculators do not always assume that prices will rise. As recently as last year, the speculative bears on NYMEX outweighed the bulls.

There is, admittedly, a growing category of inherently bullish investment funds that seek to track commodity-price indices, in which oil is usually the biggest component. Politicians have begun to denounce these “index funds”, since they make money for their investors only if prices rise. According to Mr Lieberman, they have grown in value from $13 billion to $260 billion over the past five years. This surge of investors betting on rising prices, many observers contend, has become a self-fulfilling prophecy, helping to push prices ever higher and thus attract yet more investment.

But Bob Greer, of PIMCO, an asset-management firm, argues that even index funds make unlikely suspects. For one thing, they too invest in futures, rather than in physical supplies of oil. So every month, they must trade contracts that are about to fall due for ones that will not mature for several months. That makes them big sellers of oil for prompt delivery.

What is more, their growth is not as impressive as it first appears. Paul Horsnell of Barclays Capital, an investment bank, puts the total value of index funds and other similar investments at $225 billion. That is less than half the market capitalisation of Exxon Mobil, he points out, and a tiny fraction of the $50 trillion-odd of transactions in the oil markets each year. Although index funds have grown quickly, that growth stems in large part from the rise in value of the futures they hold, rather than from fresh investment flows. He estimates that index funds swelled by $13 billion in the first quarter of this year, for example, of which all but $2 billion derives from the rise in commodity prices.

Back to basics

Mr Harris of the CFTC, for one, believes that the oil price is still a function of supply and demand. For the past few years, the world's production capacity has grown only sluggishly. Meanwhile, demand, especially from the developing world, has been growing faster. So there is hardly any slack in the system. Only Saudi Arabia and the United Arab Emirates are thought to be able to increase their output from today's levels, and even then, there are doubts, since Saudi Arabia, in particular, is secretive about the state of its oil industry.

That leaves the oil market at the mercy of even small disruptions to supply. Prices tend to jump each time militants sabotage an oil pipeline in Nigeria, bad weather threatens production in the Gulf of Mexico, or political clouds gather over the Persian Gulf.

The problem is exacerbated by a growing mismatch between the type of oil being produced and the refineries that must process it. The most common benchmark prices, including the one used in this article, refer to “light” crude, the least viscous sort, which produces the most petrol and diesel when refined. “Heavy” oil, by contrast, yields more fuel oil, which is used mainly for heating.

At the moment, diesel is in short supply and there is a glut of fuel oil. That makes processing heavy oil unprofitable for some refineries, since the gains from diesel are outweighed by losses on fuel oil. As refineries turn instead to lighter grades, it pushes their prices yet higher. The discount on heavier crudes has risen to record levels. But even then, points out Ed Morse, of Lehman Brothers, another investment bank, Iran is having trouble selling the stuff. It is storing huge quantities of unsold oil on tankers moored off its coast.

Presumably, Iran and other heavy-oil producers will eventually be obliged to drop prices far enough to make processing the stuff worth refiners' while. In the longer run, more refineries will invest in the equipment needed to crack more diesel out of heavy oil. Both steps will, in effect, increase the world's oil supply, and so help to ease prices.

But improving an existing refinery or building a new one is a slow and capital-intensive business. Firms tend to be very conservative in their investments, since refineries have decades-long life-spans, during which prices and profits can fluctuate wildly. It can also be difficult to find a site and obtain the right permits—one of the reasons why no new refineries have been built in America for over 30 years. Worse, new kit is becoming ever more expensive. Cambridge Energy Research Associates (CERA), a consultancy, calculates that capital costs for refineries and petrochemical plants have risen by 76% since 2000.

Much the same applies to the development of new oilfields. CERA reckons that the cost of developing them has risen even faster—by 110%. At the same time, oilmen remain scarred by the rapid expansion of output in the late 1970s, in response to previous spikes in prices, that led to a glut and so to a prolonged slump. Exxon Mobil claims that it still assesses the profitability of potential investments using the same assumptions about the long-term oil price as it did at the beginning of the decade, for fear that prices might tumble again. Environmental concerns are also an obstacle: America, for one, has banned oil production off most of its coastline.

Increasing nationalism on the part of oil-rich countries is adding to the difficulties. Geologists are convinced that there is still a lot of oil to be discovered in the Middle East and the former Soviet Union, but governments in both regions are reluctant to give outsiders access. Elsewhere, the most promising areas for exploration are also the most technically challenging: in deep water, or in the Arctic, or both. Although there have been big recent discoveries in such places, they will take longer to develop, and costs will be higher. The most expensive projects of all involve the extraction of oil from bitumen, shale and even coal, through elaborate processing. The potential for these is more or less unlimited, although analysts put the costs as high as $70 a barrel—more than the oil price this time last year.

Nonetheless, PFC Energy has examined projects that are already under way, and concluded that global oil production will grow by over 3m barrels a day (b/d) over the course of this year and next. In particular, it expects production outside OPEC to grow by about 500,000 b/d both years—a marked increase from the near stagnation of recent years.

Meanwhile, the high price is clearly beginning to crimp demand. The growth in global consumption last year was barely a quarter what it was in 2004 (see chart); this year, it is likely be even lower. In rich countries (or at least among the members of the Organisation for Economic Co-operation and Development (OECD), a rough proxy), the effect is even more pronounced. Consumption has been falling for the past two and a half years.

Poorer countries' demand for oil is still rising, albeit at a slowing pace. That is partly because their economies are growing faster, and partly because their consumers are shielded from the rising price through subsidies. But the increasing expense of such measures is forcing governments to water them down or scrap them altogether (see article). That, in turn, should further sap consumption.

Oil pique

China's growing thirst for oil is often put forward as one of the main factors behind today's higher oil prices. Demand for diesel there, for example, rose by over 9% in the year to April. But Mr Morse argues that such growth might not last. The government has ordered oil firms to increase their stocks of fuel by 50% to be sure there are no embarrassing shortages during the Olympics. It is also planning to run some power plants near Beijing on diesel rather than coal, in an attempt to reduce pollution during the games. These measures are helping to boost China's demand for diesel, but the effect will be transitory.

In the short run, neither demand for nor supply of oil is very elastic. It takes time for people to replace their old guzzlers with more fuel-efficient cars, or to switch to jobs with shorter commutes, or to move closer to public transport. By the same token, it can take ten years or more to develop an oilfield after its discovery—and that does not include the time firms need to bolster their exploration units.

Gary Becker, an economist at the University of Chicago, has calculated that in the past, over periods of less than five years, oil consumption in the OECD dropped by only 2-9% when the price doubled. Likewise, oil production in countries outside OPEC grew by only 4% every time the price doubled. But over longer periods, consumption dropped by 60% and supply rose by 35%. The precise numbers may be slightly different this time round, but the pattern will be the same.

Posted by 디오디오

Asia's other miracle

Apr 24th 2008
From The Economist print edition

Vietnam has developed at stunning speed by letting market forces do their work. It should free up its politics, too


NOT so long ago the word “Vietnamese” was almost inevitably accompanied in press reports by the phrase “boat people”. For two decades after the fall of Saigon in 1975, the defining image of Vietnam was the waves of bedraggled refugees washing up on its neighbours' shores, fleeing oppression and penury back home. How things have changed. Today, many former refugees are returning to seek new careers and start businesses in a transformed Vietnam. It is now one of Asia's fastest-developing countries, with annual growth averaging 7.5% over the past decade. Although this is less stellar than China's growth, our special report this week finds that Vietnam has made more impressive progress in cutting poverty than its vast northern neighbour. The government's initial hopes for 9% growth this year may be dashed, as the country struggles with double-digit inflation and a yawning trade gap. But the long-term outlook remains promising.

Shooting out of poverty

Vietnam's cities are bright and bustling and the countryside, where most of its 85m people still live, seems hardly less developed than that of officially much richer Thailand. A country once on the brink of famine has turned itself into one of the biggest exporters of farm produce. In a stark reversal of fortunes, the Philippines—once Asia's second-richest country—recently had to beg Vietnam to sell it rice for its hungry millions. Vietnam's social and economic progress has made it the poster-child of multilateral institutions such as the World Bank. It has become one of the fastest-growing destinations for multinational firms and holidaymakers. It is a rising diplomatic power: in July it will chair the UN Security Council, on which it holds a temporary seat.  

There are many useful things Vietnam could do with its new-found prestige, through both example and active diplomacy. Other countries in transition could benefit from its advice on how to set aside old enmities, open up to the world and reform defunct economies. As a rare friend of North Korea and Myanmar, Vietnam could help coax those benighted places out of self-imposed isolation. As a country that has escaped deep poverty by embracing free trade, Vietnam could encourage developing countries to take a more constructive stance in the Doha round of world trade talks (and shame richer ones into doing the same).

Remarkable as its achievements are, Vietnam is still not satisfied. It wants to go all the way to become a rich, high-tech country and has set a target date of 2020 for getting there. As several foes have learnt over the past century, the intelligence and determination of the Vietnamese should not be underestimated. But if it wants to realise its dream, Vietnam must learn the right lessons from its own story so far, and from those neighbours who have got to where it wants to be.

Vietnam began to be a success only after its ruling Communists accepted that capitalism, free markets and free trade were the surest route to riches. They began in 1986 with a liberalisation programme called doi moi (renewal), though real reform came in fits and starts over the following 20 years. Collectivisation was scrapped, farmers were given their own land to till and agricultural prices were freed. In 2000, private business—until then strictly curbed—was legalised and a stockmarket created. Trade barriers were lowered, exports and imports soared, and Vietnam is now among the world's most open economies. There can probably be no going back: any attempt to reapply the dead hand of government will ensure that Vietnam's dream of riches by 2020 remains just a dream.

Like South Korea, Taiwan and now China, Vietnam has shown it is possible to escape poverty under an authoritarian system. But it is surely no coincidence that most of the world's richest countries by income per head are liberal democracies. Political freedom is a right in itself and it does not need to be justified by arguing that it has economic advantages. But it does have them. Vietnam's leaders are already discovering that it is hard to run a thriving market economy with the methods that suited a planned economy. Managing all the strains of a fast-developing society is easier if there is a free market in opinions as well as in goods and services. In particular, tough but necessary economic decisions are easier to sell if citizens feel they have had some say in them.

Now become a star

So far, the Communist Party seems determined to retain its monopoly on power. It calls pro-democracy campaigners “terrorists” and puts them in jail. But it should take special note of the experience of South Korea and Taiwan. Until the late 1980s they too were dictatorships. Their regimes, facing rising dissent, saw the writing on the wall and democratised. Now, though their politics are a bit rough, they have the sort of prosperous, technology-based economies that Vietnam aspires to. The Vietnamese Communist Party seems instead to have been taking more interest in the example offered by Singapore, another prosperous, high-tech neighbour. Singapore's tiny size makes it a bit of an exception but even its constrained democracy—with rivals to the ever-ruling People's Action Party allowed to compete within tight constraints—would be a good start for Vietnam.

It is true that Vietnam also has neighbours, such as the Philippines and Thailand, where democracy has been a bumpy ride. But what this demonstrates is that democracy is a necessary rather than sufficient condition for reaching the premier league. The present generation of Vietnamese leaders, children of the independence struggle who want the best for their people, should think about who might come after them. If the next generation is less principled and more corrupt but cannot be dislodged from power, the country will slide backwards.

So far there are few signs of revolt against one-party rule. But as the Vietnamese get used to their broad economic and social freedoms, they are bound to appear eventually. Why wait? How much better for Ho Chi Minh's heirs to go down in history as having led the way in bringing stability, prosperity and, at last, real freedom to the people of Vietnam.

Posted by 디오디오
Posted by 디오디오
TAG 아고라

의료산업화, 참혹한 미래 불러올 것?


[kbs 미디어오늘 이정환 ] 우석균 성수의원 원장을 처음 인터뷰했을 때를 잊을 수 없다. 영화에나 나올 것 같은 허름한 병원도 낯설었지만 그는 도저히 의사처럼 보이지 않았다. 머리는 언제 감았는지 모르게 헝클어져 있었고 코털이 삐져나와 있었고 감기에 걸렸는지 계속 콜록거렸고 교통사고가 났다면서 팔에는 붕대까지 감고 있었다. 게다가 인터뷰 하는 동안 내내 담배를 피워댔다. 어딘가 당장 입원이라도 해야 할 것 같은 분위기였다.

그를 다시 만난 것은 이명박 정부가 밀어붙이고 있는 일련의 의료 산업화 정책에 대한 좀 더 구체적인 의견을 듣기 위해서였다. 보건의료단체연합 정책실장을 맡고 있는 그는 한미자유무역협정(FTA)와 관련, 미국산 소고기와 유전자변형식품(GMO) 수입 문제 등으로 정신 없이 바쁜 날을 보내고 있다. 올해 들어서는 이명박 정부의 의료 산업화 정책이 최대 현안으로 떠올랐다. 이명박 정부는 우리나라 의료 시스템을 송두리째 바꿔놓을 계획인데 정작 이에 대해 비판하는 사람은 많지 않다.

허름한 성수의원은 1988년 원진레이온 노동자들의 산재 투쟁을 이끌었던 양길승 녹색병원 원장이 설립한 곳이다. 성수의원은 이 지역 주민들에게 단순히 병원 이상의 공간이다. 양 원장의 뒤를 이어 받은 우 원장은 성동건강복지센터를 설립해 저소득 계층과 외국인 노동자들을 대상으로 무상 진료를 실시하고 있다. 간판조차 찾기 힘든 작은 병원이지만 환자들이 끊이지 않고 몰려드는 것도 이 병원과 우 원장에 대한 무한한 신뢰 때문이다.

인터뷰는 지난달 31일 오후, 우 원장이 환자를 보는 틈틈이 5시간에 걸쳐 이뤄졌다.
- 이명박 정부의 의료 산업화 정책은 크게 세 가지로 정리할 수 있을 것 같다. 영리병원을 허용하고 건강보험 당연지정제를 폐지하고 민영보험을 활성화하는 것, 그리고 하나 더하자면 장기적으로 건강보험 재정을 축소하는 것 등이다. 벌써부터 그 부작용을 지적하는 목소리가 많은데 도대체 모르고 밀어붙이는 것인가, 아니면 알면서도 밀어붙이는 것인가. 어떻게 생각하나. "이명박 정부가 추진하고 있는 의료산업화 정책은 2005년 삼성경제연구소에서 낸 '의료산업 고도화의 과제'라는 보고서에서 그대로 배껴온 것이다. 애초에 삼성생명과 삼성의료원으로 대변되는 국내 보험회사들과 대형 병원의 이해관계를 그대로 반영한 것이라는 이야기다. 이른바 '고소영'이나 '강부자'라는 사람들은 민영 의료보험에도 들고 비용을 더 부담하더라도 더 좋은 병원을 찾고 싶을 것이다. 건강보험을 축소하고 각자 알아서 해결하자고 주장하는 사람들도 바로 이 사람들이다. 건강보험 안 받는 병원을 만들자는 주장은 거대 자본과 일부 부유층의 이해가 맞물려 나온 발상이다."

- 이명박 정부는 태국이나 싱가포르와 비교도 한다. 의료 산업화를 통해 경쟁력을 높이면 해외로 빠져 나가는 의료비도 줄이고 오히려 해외 환자들도 받을 수 있지 않겠느냐는 논리인데.

"싱가포르는 공립 병원이 80%가 넘는다. 병상으로 치면 85% 정도다. 우리나라는 병원이 8% 정도, 병상 수로는 15% 정도다. 애초에 인프라가 다르다는 이야기다. 싱가포르는 교육과 의료와 주택을 나라에서 제공하고 그 위에 의료 산업화가 있다. 구체적으로 보면 가장 큰 레플즈 병원만 해도 외국 환자들이라고 해봐야 인도네시아나 말레이시아 등 이웃 나라의 해외 상사 직원들이 대부분이다. 생각해 봐라. 누가 자기 나라에 있는 좋은 병원 두고 말도 안 통하는 낯선 다른 나라에서 치료를 받겠는가. 싱가포르처럼 의료 수출이 성공하려면 조건은 세 가지다. 언어가 같고 이웃 나라의 의료 시스템이 부실하고 또 해외 나가서 치료를 받을만한 부유층이 있어야 한다. 그런데 우리나라를 봐라. 일본이나 중국과 언어도 다르고 일본은 감기만 걸려도 자기네 나라 돌아가 치료하는 사람들이다. 누가 우리나라 병원을 찾겠는가. 게다가 우리나라 물가가 일본이나 중국보다 싼가. 절대 그렇지 않다."

- 태국은 어떤가. 태국으로 성형수술 받으러 가는 사람들도 많고 그만큼 외화 획득에도 도움이 된다고 하지 않은가. "태국은 의사들이 모두 성형수술만 하는 바람에 의료 시스템이 엉망이다. 농촌은 의사들 찾아보기가 어렵다. 의료 시스템이 외국 환자 따로 국내 환자 따로 분리할 수 없기 때문에 태국 사람들 입장에서는 전반적으로 의료비가 터무니없이 높다. 아마 정부 관계자들은 수박 겉핥기식으로 구경만 하고 왔거나 아니면 알면서도 이런 현실을 무시하고 있을 가능성이 크다. 도대체 의료 산업으로 성장률을 올리겠다는 나라가 세계에 어디 있나."

- 민영 의료보험 활성화부터 이야기해보자. 우리나라는 이미 민영 의료보험이 꽤나 활성화된 상태다. 집집마다 암 보험 하나 안 든 곳이 없는데. 얼마나 더 활성화한다는 이야기인가. "가구로 보면 65~70% 정도가 암 보험 등 민영 의료보험에 가입해 있다. 생명보험은 90%가 넘는다. 이미 포화상태인 셈인데 이를 해결하기 위해 실손형 보험으로 가려는 것이다. 지금까지는 정액으로 암이면 얼마, 어디 부러지면 얼마, 입원하면 얼마 이렇게 나왔는데 이제는 병원비가 나오는대로 보장을 해주겠다는 것이다. 굳이 말하자면 민영 의료보험에 가입하는 대신 나홀로 무상 진료가 되는 셈인데 문제는 보험료가 턱없이 올라갈 수밖에 없다는 것이다. 지금 우리나라 의료비 가운데 건강보험 빼고 본인 부담이 10조원 정도인데 이게 모두 민영 의료보험 시장이 된다. 민영 의료보험으로 옮겨가는 과정에서 10조원 이상으로 늘어나게 될 가능성도 있다. 보험회사들 몫을 챙겨야 할 테니까."

- 건강보험공단이 보유하고 있는 개인 질병정보를 민영 의료보험과 공유해야 한다는 주장도 나오고 있다. 무슨 이유에서인가. "보험회사 입장에서는 실손형 보험의 경우 가입자가 병에 걸리면 진료비를 모두 부담해야 하기 때문에 병에 걸릴 확률이 높은 사람을 제외하려고 할 것이다. 건강한 사람만 받아야 수익을 높일 수 있기 때문이다. 미국에서는 생명보험과 의료보험 사이에도 정보 교환을 금지하고 있고 의료보험 사이에서도 정보 교환에 제한이 있다. 그런데 우리나라는 가입자들 개인 질병정보를 보험회사에 넘겨주려고 한다. 프라이버시 문제도 있고 무엇보다도 질병정보가 공개되면 이를 빌미로 보험료를 높여 받거나 아예 가입을 거부할 수도 있다. 더 큰 문제는 실손형 보험이 확산되면 보험회사들이 병원 진료에 개입하게 된다는 것이다."

- 영화 '식코'에 보면 보험회사가 진료를 거부해 수술을 받지 못하는 환자들 이야기가 나온다. 어떻게 그런 일이 벌어지는 것인가. "우리나라에서는 아픈 사람이나 환자를 경멸하는 용어가 없는데 식코(sicko)라고 하면 쓸모없는 사람 정도의 의미로 쓰인다. 히스패닉 사람들이 속어로 쓰는데 그만큼 한번 아프면 다시 사회로 복귀하는 게 힘들다는 이야기다. 의료보험 혜택을 받지 못하는 사람들이 미국에 4800만명, 전체 인구의 20% 규모다. 해마다 1만8천명이 해마다 병원 문턱도 밟지 못하고 죽는다. 민영 의료보험에 가입된 2억5천만명의 사람들도 상황도 크게 다르지는 않다. 이를테면 백혈병인데 보험회사가 골수이식을 못하게 하고 치료만 하게 한다거나 의사가 보험회사와 논의 없이 임의로 진료를 했을 경우 진료비를 못 내겠다고 버티는 경우도 있다. 그래서 의료 소송이 끊이지 않는다. 의사들은 보험회사에서 시키는 대로 했는데 억울할 수밖에 없다. 보험회사들은 소송을 당하면 맞소송을 걸고 최종 승소하기까지 몇 년씩 걸리거나 중간에 적당히 합의하고 끝내는 경우도 많다."

- 보험회사와 병원이 직접 계약을 맺거나 환자 유인과 알선행위를 허용해야 한다는 주장도 나온다. 병원 광고를 허용하자는 주장도 있다. "실손형 보험이 도입되면 당연히 그렇게 가게 된다. 이를테면 삼성생명에 가입하면 어느 병원에 가야 보험 혜택을 받을 수 있다고 한다. 결국 병원 줄 세우기가 되고 우리랑 계약을 하지 않으면 환자를 보내지 않는다고 병원을 위협할 수 있게 된다. 지금은 건강보험 심사평가원이 병원과 가격 계약 맺고 심사 평가를 하는데 이제 그걸 보험사가 하게 된다. 보험회사가 병원을 쥐고 흔들게 되고 과소치료 강요하게 된다. 이게 미국에서 벌어지고 있는 일이다."

- 미국에도 공적 의료보장제도는 있지 않나. "65세 이상 노인의 경우 메디케어가 있고 저소득 계층을 위한 메디케이드가 있다. 이건 그야말로 최소한의 시스템이다. 메디케이드로 혜택받는 사람은 2.8% 밖에 안 된다. 나머지는 모두 민영 의료보험에 가입하거나 아예 보험 혜택을 받지 못한다. 미국 의료 체계도 장점이 있다고 이야기하는 의사들이 있는데 의사 면허증을 찢어버리라고 말하고 싶다. 물론 미국은 응급실에 실려가면 일단 공짜로 치료는 해준다. 평소에는 치료를 못 받다가 거의 죽을 때쯤 해서 응급실 실려 가서 공짜로 치료 받는 게 과연 제대로 된 의료 시스템인가. 그게 과연 의사가 할 말인가. 미국은 메디케어나 메디케이드라도 있지만 우리나라는 건강보험을 제외하면 거의 아무 것도 없다. 건강보험까지 무너지면 미국보다 훨씬 끔찍한 상황을 맞게 될 것이다."

- 우리나라도 민영 의료보험이 활성화 되면 그나마 있는 건강보험에 대한 불만이 더 높아질 것 아닌가. 건강보험에서 빠져 나가겠다는 사람들이 늘어나고 장기적으로는 건강보험 가입을 의무에서 선택사항으로 바꾸게 될 가능성도 있나. "극단적인 가정이지만 이명박 정부가 가는 방향이 바로 그 방향이다. 건강보험이 싫은 사람은 민영 의료보험으로 가고 건강보험은 껍데기만 남게 된다. 경제개발협력기구(OECD) 의료보장 수준이 73% 정도다 공립 의료기관 비율은 75% 정도 된다. 우리나라는 보장 수준이 50%, 공립 의료기관은 8% 정도다. 그나마 이 정도 보장이 되는 것은 모든 병원을 비영리 병원으로 하고 건강보험을 의무가입 하도록 하고 병원에는 건강보험 당연지정제를 두고 있기 때문에 가능한 것이다. 그런데 이 가운데 두 개를 날리겠다는 거다. 영리 병원을 허용하고 민영 의료보험을 허용하고 결국에는 의무가입도 깨지게 되는 수순이다. 이른바 강부자, 고소영씨들은 나는 건강보험 안 되는 고급 병원에 가는데 건강보험을 왜 내느냐고 주장할 것이다. 그렇게 상위 12%가 빠져 나가면 건강보험 재정이 절반으로 줄어들게 된다. 가뜩이나 열악한 건강보험 재정이 파탄난다는 이야기다."

- 영리병원의 개념을 다시 정리해 달라. 지금도 모든 병원이 다 영리병원 아닌가. "물론 지금도 병원이 돈벌이에 혈안이 돼 있는 건 맞다. 다만 지금은 병원 안에서 번 돈은 병원 안에서만 쓰도록 돼 있다. 주식이나 채권으로 바깥에 주지 말라는 것이다. 그런데 만약 병원이 주식을 발행할 수 있도록 하면 주주들이 돈을 벌게 된다. 우리나라에서도 벌써부터 일부 치과나 소아과가 프랜차이즈 사업을 벌이고 있다. 이런 병원들 보면 의사 말고 코디가 따로 있다. 경영지원시스템이라고 부르는데 이들이 환자들에게 추가 진료를 권유하고 수익을 높이는 일을 맡는다. 이를테면 이것도 하나 하시죠, 이런 주사 한번 맞아보시죠 하는 식이다. 극단적인 사례로 미국에서는 영리병원의 경우 신장투석 환자의 사망률이 비영리병원보다 20%나 높다는 통계가 있다. 적절한 시기에 신장이식 수술을 해야 하는데 병원에서는 수술 보다는 신장투석을 추천한다. 신장이식을 하고 나면 병원에 올 일이 없기 때문이다. 그래서 신장투석을 계속해서 받고 더 많이 죽게 된다. 통계적 오류는 있을 수 있지만 결코 터무니없는 소리는 아니다."

- 영리병원이 허용되면 영리병원으로 전환할 병원은 어느 정도나 될 것으로 예상하는가. "영리병원 허용과 건강보험 당연지정제 폐지는 동전의 양면처럼 맞물려 돌아간다. 영리병원으로 빠져 나가는 비율을 대략 5% 정도로 예상하고 있지만 구체적인 자료는 없다. 정부는 별로 안 나갈 거라고만 한다. 정부 역시 아무런 전망도 근거도 없다. 그러면서 반대하는 사람들에게 근거를 대라고 한다. 우리가 왜 근거를 대야 하는가."

- 영리병원의 진료비는 어느 정도 될 것으로 예상하는가. "연세대 병원에 외국 환자들을 대상으로 하는 포리너 클리닉이 있는데 진료 수가가 평균 4배 정도 된다. 감기 치료가 일반 병원은 1만3천원인데 거기는 6만원이다. 약값까지 치면 8만원 정도다. 건강보험을 적용 받으면 일반 병원에서는 약값까지 해서 5천원 정도면 되니까 거의 13배쯤 차이나는 셈이다. 맹장수술 한번 받으면 1천만원 나온다는 게 괜한 소리가 아니다. 지금은 40만원 정도 나오는데 영리병원에서는 13배 이상, 1인실 이용하고 며칠 입원하면 1천만원이 훌쩍 넘을 수도 있다. 지금은 병원 못가서 죽는 사람은 없는데 건강보험 도입되기 전에는 있었다. 그때는 의사 개업하고 2~3년 안에 빌딩 못 올리면 바보라고 했었다. 과연 그게 정상적인 사회인가."

- 그런데 의료 산업화를 주장하는 사람들은 시장원리에 맡겨야 한다고 이야기한다. 시장원리에 맡겨야 경쟁이 되고 서비스도 좋아지고 가격도 내려갈 것이고 터무니없이 비싸게 받으면 환자들이 안 갈 테니 적정 가격이 형성되지 않겠느냐는 논리에서다. "다시 강조하지만 우리나라는 공립병원이 8% 밖에 안 된다. 나머지 92% 가운데 얼마나 빠져 나갈 것인지는 아무도 모른다. 뱀파이어 효과가 생긴다. 불 껐다가 켜면 누가 뱀파이어인지 알 수 없기 때문에 다들 서로 물어뜯으려고 한다. 하나둘씩 빠져 나가다 보면 걷잡을 수 없게 된다. 결국 너도 나도 의료 수가를 올리게 되고 건강보험 수가도 덩달아 압력을 받게 된다. 경쟁을 할수록 서비스가 좋아진다고 하지만 사실 좋아지는 건 의료 수준이 아니라 그야말로 서비스뿐이다. 로비를 넓히고 엘리베이터를 고치고 병실을 꾸미고 그야말로 숙식업소로 가는 거다."

- 건강보험 재정이 열악한 것도 사실 아닌가. 일부에서는 건강보험의 재정 안정화를 위해 보장 범위를 필수의료에 한정하자는 이야기도 나온다. "필수의료와 고급의료라는 구분 자체에 문제가 있다. 고급의료라는 건 애초에 없다고 생각한다. CT나 MRI 촬영은 처음에는 고급의료였지만 이제는 필수의료가 됐다. 새로운 기술이 평범한 기술이 되는 건 2년도 안 걸린다. 양전자 자기공명이라고 부르는 PET 같은 경우만 해도 지금은 보편화됐다. 고급의료라고 건강보험에서 제외하면 제대로 진료를 할 수 없게 된다. 엑스레이만 찍고 말 것인가. 일부에서는 미용성형이나 보약, 치과진료 같은 걸 이야기하는데 그건 민영 의료보험에서도 안 한다. 그게 계지 무슨 보험인가. 고급의료라는 건 건강보험 축소를 위한 핑계일 뿐이다. 고급의료라는 건 사실 의료영역이 아닐 수도 있다. 민영 의료보험에 가입할 수 있는 능력있는 사람은 제대로 치료받겠지만 건강보험 밖에 가입할 수 없는 사람은 기초적인 치료만 받게 될 수도 있다."

- 의료 산업화가 경쟁력을 높이고 의료수지 적자를 줄일 수 있을 거라는 기대도 있는데. "해외 의료지출이 1조원이라는 이야기가 나오는데 이건 아무런 근거도 없는 이야기다. 삼성의료원 이종철 원장이 언젠가 인터뷰에서 대략 1조원쯤 될까 이 정도로 이야기했는데 모든 언론이 이를 인용하고 있다. 대한병원협의회에서는 이런 자료 낸 적이 없다고 한다. 보건산업진흥원과 한국은행 추계로는 500억원로 보고 있다. 많이 잡아야 1천억원이다. 게다가 여기에는 원정 출산이 상당부분 포함돼 있다. 그런데 최근 대한무역진흥공사가 1조원이라고 또 듣도 보도 못한 수치를 끄집어 냈다. 오래 된 사기를 새로운 사기로 포장한 셈이다."

- 인구 고령화가 진행되면서 건강보험의 재정적자는 불가피한 상황이다. 대안이 있나. "필요하다면 보험료를 올려야 한다. 그게 민영 의료보험을 활성화하는 것보다 훨씬 나은 대안이다. 사실 보험료를 안 올려는 대안도 있다. 보험료를 5:5로 내는 나라는 우리나라밖에 없다. 회사가 5, 가입자가 5를 낸다. 대만은 6:3:1이다. 회사가 6: 가입자는 3, 정부가 1을 낸다. 유럽의 스칸디나비아 나라들은 9:1이고 프랑스는 8:2다. 우리나라는 가뜩이나 복지부문 정부 지출이 OECD의 3분의 1 수준인데 건강보험의 재정 적자를 이야기하는 건 우스운 일 아닌가."

- 이르면 올해 5월부터 GMO 식품이 수입될 거라고 한다. 논란이 많지만 아직 GMO가 위험하다는 과학적인 근거는 없지 않나. 일부 시민단체는 현실적인 이유로 GMO 식품의 수입 거부는 문제가 있다고 보고 수입 거부보다는 표시제도를 강화하자고 주장한다. "FTA 협상 과정에서 일부 교역 조건을 완화하는 것을 조건으로 GMO 식품 수입을 허용하는 거래를 했다는 증거가 있다. 의류 수출을 위해 GMO 식품을 들여오기로 한 것이다. 유럽은 가공식품이든 뭐든 GMO 식품 첨가 여부를 표시하도록 돼 있는데 우리는 모르고 먹고 있다. 위험성이 밝혀진 바 없다고 하지만 밝혀지지 않은 바도 없다. 토마토를 탱탱하게 보이려고 토마토에 넙치 유전자를 집어넣는 경우가 일반적인데 정작 위험성을 검사할 때는 이 결합 식품의 위험성을 검사하는 게 아니라 넙치 유전자의 유해성을 검사한다. 그만큼 위험성 검사가 엉터리로 이뤄지고 있다는 이야기다. 이해를 돕기 위해 말하자면 왜 GMO 쌀은 있는데 GMO 밀은 없는가. 몬산토에서 개발은 거의 끝냈는데 소비자 단체 발발이 거세서 잠정 중단한 상태다. 터미네이터라고 불리는 유전자가 있다. 한번 뿌리고 수확해서 다시 뿌리면 안 열리는 유전자다. 특허를 보호하기 위해 종자를 뿌릴 때마다 다시 사도록 하기 위해서인데 문제는 이 유전자가 날아가서 다른 식물과 이종 교배가 되면 어떻게 할 것이냐다. 무슨 말이냐면 아예 종자 번식을 못하게 된다는 것이다. 끔찍한 일이다."

- 의약품 특허도 문제 아닌가. 한미 FTA에 외국 제약회사들 이해관계를 반영하는 조항이 많은데. "특허라는 게 한 사람이 개발한 과학기술을 무덤까지 갖고 가지 않게 일정 기한이 지나면 공개하고 인류의 재산으로 만들기 위한 것이다. 그런데 그 이익이 개발한 사람에게 돌아가는 게 아니라 주주들에게 돌아간다. 세계보건총회에서 나라마다 GDP의 몇 %씩 갹출을 해서 글로벌 펀드를 만들고 항생제를 개발하고 특허를 공개해 저렴한 가격에 필수 의약품을 공급하자는 의견이 나왔다. 그런데 미국이 반대해서 무산됐다. 더 정확하게는 미국에 있는 다국적 제약회사들이 반대했다. 세계적으로 완전히 박멸된 질병이 소아마비다. 소아마비 백신을 개발한 조나단 솔크가 특허를 포기한 덕분에 세계 어디에서나 이 백신은 100원 정도면 접종할 수 있다. 그런데 제약회사들은 특허를 20년도 모라자 더 연장하려고 한다. 의약품 비용은 해마다 13.5%씩 오른다. 물가 상승률 3.5배다. 몇몇 제약회사의 이익을 위해 세계 모든 사람들이 부담을 짊어지고 있는 셈이다."

- 조류독감 치료제 타미플루의 경우가 좋은 사례가 될 것 같다. 정말 중세의 페스트처럼 인류의 3분의 1이 죽는 그런 끔찍한 일이 벌어질 수도 있나. 특허를 공개해서 타미플루를 대량생산을 해야 한다는 주장도 나오는데 가능성이 있다. "학자들은 페스트 못지 않은 위험한 전염병이 될 수도 있다고 우려하고 있다. 타미플루는 유일한 조류독감 치료제다. WHO는 인구의 15% 이상 타미플루를 확보할 필요가 있다고 권고하고 있다. 문제는 생산이 한정돼 있어 2020년이 돼야 그 정도를 확보할 수 있다는 것이다. 물량이 나오는 족족 사재기를 해서 구하기도 어려운 상황이다. 우리나라도 40만개, 1% 정도를 확보하는데 그쳤다. 다행히 사스처럼 그냥 지나가면 다행인데 그렇지 않을 경우 끔찍한 재앙이 될 수 있다. 특허를 풀면 좋겠지만 특허를 갖고 있는 회사가 길리아드 사이언스인데 이 회사의 최대 주주이자 전직 최고경영자가 바로 현재 미국 국방장관인 도널드 럼스펠드다. 가만 앉아있으면 돈 벼락을 맞을 수 있는데 이걸 내놓으려고 하겠는가."

- 미국 소고기와 광우병 이야기를 하지 않을 수 없다. FTA 찬성론자들은 흔히 미국 사람들 다 먹는 소고기가 뭐가 문제냐고들 말한다. 좀 더 신중한 사람들도 광우병의 위험을 간과해서는 안 되겠지만 지나치게 과장할 필요는 없는 것 아니냐고 한다. "확실한 건 인간 광우병의 잠복기가 10년이라는 것이다. 영국에서도 광우병이 1988년 처음 발생하고 인간 광우병은 1997년에 처음 나타났다. 미국의 경우 2013년이 돼 봐야 알 수 있다. 영국에서도 농림부 장관이 나와서 소고기 시식도 하고 아무 문제 없다고 떠들어 댔지만 결국 수많은 사람이 죽었다. 과장이 아니다. 언젠가 조선일보 칼럼에서 어떤 대학 교수가 내 아들도 미국에서 소고기 먹고 있다고 말하던데 그 사람은 아마 초등학교 생물학부터 다시 공부하는 게 좋겠다. 10년 지나서 다시 이야기하자. 유럽에서는 미국산 소고기 수입 거의 안 한다. 유럽은 동물성 사료를 금지했는데 미국은 여전히 교차 오염 위험성이 있다. 소에게 돼지를 먹이고 돼지에게 소를 먹이고 그런데 만약 소 안에서 소화되지 않은 돼지를 돼지가 먹고 돼지 안에서 소화되지 않은 소를 소가 먹는다고 생각해 봐라. 위험은 과장되는 것이 아니라 제대로 알려지고 있지 않다. 미국에서 사상 최대의 소고기 리콜 사태가 벌어졌는데 여전히 우리는 소고기 수입하고 FTA 체결하자고 한다. 도대체 미국만 먹고 아무도 안 먹는 미국 소고기를 왜 우리나라는 수입해야 하는가."

- 만약 소고기를 수입해 와도 아무도 안 먹을 수도 있지 않을까. 일본처럼 말이다. "언젠가 소시지를 마트에서 산 적이 있는데, 햄 말고 밀가루 들어간 길죽한 소시지였는데 점원이 요즘 이런 소시지를 누가 먹느냐고 묻더라. 이런 소시지는 어린이집에서 밖에 안 사간다는 이야기다. 어린이집에서는 가장 싼 걸 먹인다는 이야긴데 놀랍지 않은가. 만약 미국산 소고기가 들어오면 가장 먼저 이런 곳에 들어가지 않을까. 내 자식에게 먹이고 싶지 않은 음식을 다른 자식들에게는 먹인다. 결국 모두가 먹게 된다. 이런 소고기를 누가 수입하는 것일까. 급식업체들인 삼성에버랜드와 CJ푸드시스템 같은 회사들이다. 값싼 소고기를 들여오면 급식비를 내릴까, 천만의 말씀이다. 어디 소고기를 쓰는지 알게 뭔가. 급식업체 뿐만 아니라 식당이나 가공식품 등 곳곳에 들어가게 된다. 결국 그 과정에서 누가 돈을 챙기는가. 미국에서는 다국적 식품회사들, 우리나라에서는 재벌들이다. FTA라는 게 사실 미국의 자본과 한국의 자본이 뜨겁게 연대하는 과정이다."
Posted by 디오디오

태연 - 만약에

음악 2008/04/11 18:34
Posted by 디오디오
TAG 음악

화려한 휴가

기타 2007/07/29 00:39
5월, '화려한 휴가'의 기록

80년 5월 17일, 광주 상무대 전투교육사령부에서 공수부대 천여명이 작전개시 명령을 기다리고 있었다. 작전의 이름은 '화려한 휴가' 였다.

80년 5월 18일. 나는 광주에 있었다. 어머니께서는 태어난지 7개월이 채 되지 않은 나를 데리고 요양차 친정에 머무르고 계셨던 것이다. 전남대 정문 앞 외가에서 나는 5월 18일을 맞았다.

<블러디선데이>는 아일랜드의 민중 유혈사태를 다룬 영화이다. 공교롭게도, 광주가 처참하게 찢어발겨졌던 5월의 그날 역시 일요일이었다. 지구 반대편에서 벌어졌던 피의 역사는 치밀하게 연구되고 기록되는 마당에, 이 땅에서 우리의 혈육들이 살상당했던 기억들은 조직적으로 지워지고 망각되어 버리는 실태이다. 우습고 창피하고, 무서운 일이다.

광주의 아들 딸들이라고 불리웠던, 386세대들이 권력의 핵심에 등장한 작금에 이르러서도 전두환 군사정권에 비해 나아진 점은 찾아볼 수 없다. 아니, 오히려 더 나빠졌다. 5월의 정신은 한낮 정권의 유세거리로 전락해버린채 망령이 되어 대기를 맴돌고 있다. 광주의 피를 야기했던 군부조직과 거기에 영합했던 악덕 언론들은 여전히 배를 두들기며 호황을 누리는 세상이다.

무엇보다도 광주의 피를 묵인했던 지역감정이 여전히 진행형으로 있다는 사실은 매우 중요하다. 이는 대부분 광주에 대한 무지에서 비롯된다. 왜 광주가 싸워야만 했는지, 피를 흘려야만 했는지, 그리고 왜 김대중에게 아낌없는 지지를 보낼 수 밖에 없었는지 다른 지역의 사람들은 잘 알지 못한다.

다만 여기에서 광주에 대한 무지가 아니라, 모든 것을 충분히 잘 알고 있음에도 불구하고 자신의 안위와 삶의 영락을 위해 눈과 귀를 가리고 부조리를 허락했던 사람들은 논외로 하고자한다. 거론될 가치가 없는 인종들이기 때문이다. 타락한 대중은 타락한 독재자보다 수천배는 더 위험하다. 대한민국의 현대사가 그것을 철저하게 고증하고 있다.

지금부터 참고문헌들의 기록들을 통해 환기시키고자 하는 것은 전두환과 그의 공수부대가 '화려한 휴가'라고 일컬었던 5월의 참상들이다. 그 모습들은 믿을 수 없을만치 잔인하고 처참해서 읽고 보기가 불편하기 이를 데 없을 것이다. 그럼에도 불구하고 내가 구태여 자료들을 날짜별로 구분하고 정리하는 '바보같은' 수고를 아끼지 않는 이유는 매우 단순하다. 5월의 진실이 집단의 이익 앞에 왜곡되어 잊혀져가고 있기 때문이다. 대부분의 자료들이 의도적으로 은폐되고 폐기되어 사라져버린 마당에, 우리는 이 진실의 단초들을 더욱 더 굳건하게 부여잡아야만 할 것이다.

이곳을 방문하는 이들에게 광주와 지역감정을 이해하는데 미력하나마 도움이 될 수 있다면 정말이지 여한이 없겠다. 무지에서 벗어나 광주를 똑똑히 바라보자. 그곳에 무엇이 보이는가.

[화려한 휴가의 기록]

5월 17일

밤 11시 40분, 문공장관 이규현은 5월 17일 24시를 기해 비상계엄을 전국으로 확대한다고 발표했다. 계엄 확대가 발표되고 두 시간이 지난 후, 전남대와 조선대 캠퍼스에 특전사가 투입되었다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

5월 18일

오전 10시, 휴교령이 내린 상태에서 전남대 정문 앞에 모여든 학생 100여명과 무장 공수대원이 대치하였다. 200-300명 정도로 수가 불어나자 학생들은 "계엄해제" "계엄군 물러가라" "휴교령 철회하라" 라는 구호를 외치기 시작했다. 곧 대치 중이던 공수부대 책임자가 "돌격 앞으로" 라는 명령을 내렸고, 공수대원들은 학생들에게 파고들면서 곤봉을 휘둘렀다. 곤봉은 쇠심이 박힌 살상용 곤봉으로, 이를 맞은 학생들이 피를 흘리며 쓰러졌다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

"공수부대 병사들은 마음껏 모든 가능한 폭력을 행사하였다. 첫날부터 대검을 사용하였고, 지나친 폭력에 항의하는 할머니, 할아버지들에게 입에 담지 못할 욕을 해대며 무지막지하게 구타하고, 여성들에게 폭행하고 옷을 찢고 심지어 젖가슴을 대검으로 난자하였다."
- 최정운 <오월의 사회과학> (풀빛, 1999)

"공수 놈들이 여고생을 붙잡고 대검으로 교복 상의를 찢으면서 희롱하고 있었다. 그 광경을 보고 있던 60살이 넘어보이는 할머니 한 분이 "아이고! 내 새끼를 왜들 이러요?" 하면서 만류하자 공수놈들은 "이 씨팔 년은 뭐냐, 너도 죽고 싶어?" 하면서 군화발로 할머니의 배와 다리를 걷어차 할머니가 쓰러지자 다리와 얼굴을 군화발로 뭉게버렸다. 그리고 그들은 여학생의 교복 상의를 대검으로 찢고 여학생의 유방을 칼로 그어버렸다. 여학생의 가슴에서는 선혈이 가슴아래로 주르르 흘러내렸다."
-박남선 <피고인에게 사형을 선고한다> (샘물, 1988)

5월 19일

"5월 19일에 저질러진 공수부대의 만행은 어찌나 잔인했던지 진압하러 나온 경찰조차 시민들에게 울먹이면서 "제발 집으로 돌아가라, 공수부대에게 걸리면 다 죽는다"고 애원할 정도였다."

"주위의 노인들이 공수대원의 폭력을 만류하자 그들은 노인들의 머리를 곤봉으로 후려쳤다. 노인들도 머리에서 피를 뿜으며 쓰러졌다. 이런 모습을 도망치며 바라본 시위 군중들은 어디서 그런 힘이 솟았는지 일시에 돌아섰다. 그리고는 "좋다, 다 죽여라!" 하면서 공수부대에 정면으로 달려들었다"
- 전남사회운동협의회 편, 황석영 기록 <죽음을 넘어 시대의 어둠을 넘어> (풀빛, 1985)

"어느 할아버지는 "저럴 수가 있느냐, 나는 일제 때에도 무서운 순사들도 많이 보고, 6.25 때 공산당도 겪었지만 저렇게 잔인하게 죽이는 놈들은 처음 보았다. 학생들이 무슨 죄가 있길래 저러는가. 죄가 있다고 해도 저럴 수는 없다. 저놈들은 국군이 아니라 사람의 탈을 쓴 악귀들이야." 하면서 통곡했다. 어느 중년의 사내는 "나는 월남전에는 참전해서 베트콩도 죽여봤지만 저렇게 잔인하지는 않았다. 저런 식으로 죽일바엔 그냥 총으로 쏴 죽이지. 저 놈들은 죽여버려야 해" 하면서 오열을 터뜨렸다. 온 거리는 피의 강, 울음의 바다가 되었다."

"로타리 부근 전투에서 머리가 으깨지고 팔이 부러져 온통 피범벅이 된 부상자를 급히 병원으로 이송중이던 택시기사에게 공수대원이 부상자를 내려놓으라고 명령했다. 기사는 안타깝게 "당신이 보다시피 지금 곧 죽어가는 사람을 병원으로 운반해야 되지 않겠느냐" 라고 호소하자 그 공수대원은 차의 유리창을 부수고 운전기사를 끌어내려 대검으로 무참하게 배를 찔러 살해했다. 이런 식으로 최소한 3명의 운전기사가 살해당했는데, 이는 다음날인 20일, 또 하나의 기폭제였던 차량시위의 직접적인 계기가 된다."
- 전남사회운동협의회 편, 황석영 기록 <죽음을 넘어 시대의 어둠을 넘어> (풀빛, 1985)

5월 20일

대검만으로는 모자랐던 걸까. 20일 오후부터는 심지어 화염방사기까지 사용하였다. 2시 30분경 공수부대는 화염방사기를 쏘아 여러 명의 시민들이 그 자리에서 타 죽었다.
- 최정운 <오월의 사회과학> (풀빛, 1999), 강준만 <한국 현대사 산택> (인물과 사상, 2003)

"시민들은 혹시나 자신들의 운명에 관한 새로운 소식이 TV를 통해 방영되지 않을까 기대하면서 모두 열심히 시청하였지만 TV에서는 아무런 상관도 없는 연속극이나 오락프로만 아무 일도 없었다는 듯이 방영되고 있었다. 그들은 텔레비젼을 보며 이글이글 타오르는 분노를 느꼈다. 한 쪽에서는 죄 없이 같은 동포가 절규하며 죽어가고 있는데, 저 텔레비젼의 다리를 흔들어 대는 춤은 누구를 위한 것인가 하는 배신감이었다."
- 전남사회운동협의회 편, 황석영 기록 <죽음을 넘어 시대의 어둠을 넘어> (풀빛, 1985)

MBC 이외에도 KBS와 세무서도 불에 탔다. 신군부는 이 방화들을 '폭도론'의 증거로 TV 등을 통해 계속 보여주었다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

"전남대에서 신역까지 도보로 이동하면서 아스팔트와 건물을 향해 사격을 실시한다. 트럭 위에서는 M60이 엄호사격을 하면서 한 발 한 발 신역을 향해 다가간다. 사병들을 향해 고함치기 시작했다. 후퇴는 없다. 후퇴하면 모두 쏴죽인다."
- 광주매일 정사 5.18 특별 취재반 <10일간의 항쟁> (사회평론, 1995)

5월 21일

오전 10시경 금남로에는 10만이 넘는 시민들이 모여 있었다. 시민들은 일단 정오까지 공수부대를 시외곽으로 철수시키겠다는 약속을 믿고 기다리는 중이었다. 약속한 정오가 지나도 아무런 변화가 없었다. 오후 1시 정각, 건물 외부에 설치된 확성기를 통해 애국가가 울려퍼지기 시작했다. 그건 공수부대의 집단 발포를 알리는 신호였다. 광주시민들을 몰살시키려는 것이었을까. 시민들은 공수부대의 집단 발포를 정면으로 맞고 쓰러지기 시작했다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003) 광주매일 정사 5.18 특별 취재반 <10일간의 항쟁> (사회평론, 1995)

"공수놈들은 같은 동족을 살상하고도 쓰러진 사람들을 옮기지 못하도록 연발로 위협사격을 해대었다. 아직도 공수부대놈들의 사격선 부근에서 부상한 채로 살려달라고 외치는 시민들의 애원소리는 처절했고, 이는 그것을 바라보는 시민들의 피를 끓게했다. 공수놈들은 아직 죽지 않고 아스팔트 바닥 위에서 살려달라고 애원하는 시민들을 구하려고 뛰어나가는 시민들에게조차 사격을 가해 사살해버렸다. 부근 건물의 벽에 바짝 붙어서 이 광경을 보고 있던 시민들은 모두 울고 있었다."
-박남선 <피고인에게 사형을 선고한다> (샘물, 1988)

"순식간에 금남로는 피와 통곡의 바다가 되었다. 공수부대는 도청과 주변의 건물에 숨어 보이는 사람들마다 져격하였다. 1시 30분경에는 한 청년이 장갑차 위에서 윗통을 벗고 태극기를 높이 휘날리며 도청을 향해 '광주만세!' 를 외치며 달려들었다. 모든 시민들이 긴장되어 그를 응시하는 가운데 한 발의 총소리와 함께 피가 튀며 청년의 목이 꺽어졌다. 이 광경을 본 모든 시민들은 도저히 말로 표현할 수 없는 충격에 온몸을 떨었다. 이제는 정말 돌이킬 수 없는 '전쟁' 이었다. 시민들은 곧 총을 얻기 위해 시내, 외의 무기고로 향했다."
- 최정운 <오월의 사회과학> (풀빛, 1999)

21일 저녁, 드디어 시민군은 계엄군을 도청에서 몰아내고 점거하는데 성공한다.
- 강준만 <한국 현대사 산택> (인물과 사상, 2003)

5월 22일

22일 비공식적인 정전이 성사되고 종교 지도자들을 포함한 시민 수습위원회와 신군부 사이에 사태의 평화적 해결을 위한 대화가 시작되었다. 그러나 이날 계엄당국은 김대중을 광주폭동의 배후라고 발표했으며, 일부 특전사 지휘관들은 무력을 동원해 광주 '폭도들'을 '소탕' 해야 한다고 주장했다.
- 윌리엄 글라이스틴, 황정일 역. <알려지지 않은 역사> (중앙 M&B, 1999), 강준만 <한국 현대사 산책> (인물과 사상, 2003)

전두환은 정석환에게 "최장군의 사기가 극도로 저하되어 있을 터이니 용기를 잃지말고 분발하라고 전해달라"며 전두환 자신의 명의로 금일봉 1백만원을 최웅에게 전해달라고 지시했다.
- 정석환, <비화/ 5.18당시 정보부 전남지부장 정석환 비망록> (신동아, 1996 1월)

5월 24일

공수부대는 지원동 주남마을을 출발하여 학동과 진월동을 거쳐 시민들의 눈에 띄지 않는 야산으로 철수하던 중 진월동에 이르러 인근지역에 장난삼아 총질을 가했다. 저수지에서 멱을 감고 있던 아이들에게 집중 사격을 가하자 아이들은 둑 너머로 피신했지만, 전남중학교 1학년이었던 박광범이 머리에 총을 맞고 즉사했다. 또한 진월동 동산에서 놀고 있던 아이들에게도 무차별 집중사격을 가했다. 모두 피신했지만 신발이 벗겨져 뒤돌아섰던 효덕국민학교 4학년 전재수는 총에 맞고 즉사했다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

전남대학교 교수들은 <대한민국 모든 지성인들에게 고함>을 발표했다. "모든 사람들은 6.25때에도 이런 참혹한 살육전은 없었다고 울부짖으며 '모두 죽자' '죽여달라' 를 외치며 짐승 같은 계엄군과 맨몸으로 싸웠습니다..... (중략) 고립된 우리 광주 시민들에게는 무엇보다도 한시가 절박합니다. 민주시민이여! 민주화를 위해, 우리의 삶을 위해 일어섭시다."
- 김정남 <동포여, 무엇을 하고 있는가> (생활성서, 2002년 12월)

5월 25일

아침 8시, 황금동 부근에서 술집을 경영하는 21세의 장계범이라는 사람이 도청 농림국장실에 쓰러지듯이 허겁지겁 들어닥치면서 어깨를 움켜쥐고는 "독침을 맞았다!"고 소리쳤다.... (중략) 독침 사건이 발생하자 도청 안의 분위기가 갑작스레 살벌해졌다. 여기저기서 간첩이 침투했다는 소문이 돌고 모두들 수군거리며 도청 안에는 불안해서 못 있겠다며 상당수가 빠져나갔다...(중략) 이 사건은 사전에 계획된 것으로서 침투정보요원들의 도청지도부 교란작전이었다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

5월 26일

전남 도청에서 최초이자 마지막 내외신 기자회견이 열렸다. 미국의 일간지 <볼티모어 선>지의 기자 블레들리 마틴은 이 기자회견에서 만난 광주항쟁 지도부의 청년학생투쟁위원회 대변인이었던 윤상원에 대해 이렇게 말했다. "나는 이미 그가 죽을 것임을 예감했다. 그 자신도 그것을 알고 있는 듯했다. 표정에는 부드러움과 친절함이 배어 있었지만, 시시각각 다가오는 죽음의 그림자를 읽을 수 있었다. 지적인 눈매와 강한 광대뼈가 인상적인 그는 최후의 한 사람이 남을 때까지 싸우겠다고 했다."
- 임창용 <'폭동'아닌 '민주항쟁' 자리매김 큰 몫 윤상원 5.18 시민군 대변인> (서울신문 1998 9월 10일)

5월 27일 0시를 기점으로 광주의 시외 통화가 끊기자 도청에 남아있던 사람들은 계엄군이 진입할 것이라는 것을 예감했다. "고등학생들은 먼저 총을 버리고 투항해라. 우리야 사살되거나 다행히 살아남아도 잡혀 죽겠지만 여기 있는 고등학생들은 반드시 살아남아야 한다. 산 사람들은 역사의 증인이 되어야 한다. 우리는 민주주의와 민족통일의 빛나는 미래를 위하여, 항쟁의 마지막을 자폭으로 끝내서는 안된다. 자, 고등학생들은 먼저 나가라."
- 전남사회운동협의회 편, 황석영 기록 <죽음을 넘어 시대의 어둠을 넘어> (풀빛, 1985)

5월 27일

새벽 4시쯤 도청 앞은 탱크를 앞세운 계엄군에 의해 완전히 포위되었으며, 금남로를 중심으로 시가전이 벌어지기 시작했다. 계엄군의 장갑자 위에 장착된 서치라이트가 도청을 비추는 가운데 계엄군은 항복을 권유하는 최후 통첩을 방송했다. 그러나 도청 안에서는 아무런 반응이 없었고, 곧 총성이 울림과 함께 계엄군의 서치라이트가 박살났다. 다시 캄캄한 어둠이 내리깔렸고 계엄군의 일제사격이 개시되었다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

달아나던 시민군을 살해했던 계엄군은 8명의 투항자들을 전부 사살하였다. 한 계엄군 병사는 한쪽 발을 시민군 포로의 등에 올려놓고 사격하면서 "어때, 영화구경하는 것 같지?"라는 농담까지 던졌다.
- 전남사회운동협의회 편, 황석영 기록 <죽음을 넘어 시대의 어둠을 넘어> (풀빛, 1985)

"시민군들이 모두 정면으로 응사하는 동안 뒷담을 넘어 들어온 3공수 특공대는 도청 건물로 잠입하여 보이는 대로 총을 난사하고 여기저기 수류탄을 까넣었다. 그리고는 확인사살까지 했다. 많은 시민군들은 특공대가 들어오는 것을 보았지만 차마 방아쇠를 당기지 못했다."
- 최정운 <오월의 사회과학> (풀빛, 1999)

그 날 이후

광주학살의 참상을 목격한 후 서울로 올라왔던 서강대생 김의기는 충격을 견디지 못하고 5월 30일 오후 5시 30분 서울 종로 5가 기독교회관에서 <동포에게 드리는 글>이라는 글을 뿌리면서 투신 자살했다.

후일, 오랫동안 집을 떠나 있어 신고가 접수되지 않은 사망자 수까지 합하면 전체 사망자 수는 2천명에 이를 것이라는 주장도 제기되었지만 확인할 길은 없었다. 공수부대원들이 처음부터 사상자수를 은폐하기 위해 사상자가 발생하는대로 트럭에 싣고 아무도 모를 곳에 파묻었기 때문에 더욱 그랬다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)

<조선일보>는 5월 25일자 사설에서 항쟁세력들을 '분별력을 상실한 군중'으로 몰아붙이고는, "......57년 전 일본 관동대지진 때 조선인 학살의 역사가 반교사적으로 우리에게 쓰라린 교훈을 주고 있다..." 며 마치 광주시민들을 무자비한 일본인 폭도들에 비유하기도 했다.
- 정운현 <'광주의 굴레' 못 벗은 한국언론> (대한매일 2001년 5월 19일)

무력감에 빠진 호남인들은 오작 말 없이 김대중에 대한 지지를 통해 그 한을 풀고자 하였지만, 인정머리 없고 광주학살에 대해 눈물 한방울 흘린 적이 없는 일부 한국인들은 그들의 그런 평화적인 선택에 대해서조차 경멸을 보내는 데에 주저하지 않았다.

신군부는 그러한 '적의 창출' 효과로 비호남, 특히 영남을 결집시켰고, 더 나아가 호남을 김대중과 등치시키면서 호남을 제외한 모든 지역의 호남에 대한 반감을 자기들을 위한 안전판으로 활용하였다. 이후 한국사회는 내내 그런 악용의 후유증을 앓게 된다.
- 강준만 <한국 현대사 산책> (인물과 사상, 2003)
Posted by 디오디오

CListCtrl FAQ

개발 2007/06/19 12:28

Celtic Wolf, Inc. Home Page
Back to Useful Information

This FAQ answers questions that are frequently asked in microsoft.public.vc.mfc about the MFC class CListCtrl and the related class CListView.

Contents:
Insertion
1. When I try to insert information in the second, third, etc. columns, with InsertItem(), it doesn't work. Why?
Appearance
2. How do I make selection appear even when control doesn't have focus?
3. How do I select the entire row?
Getting and setting item states
4. How do I get the item's selected/focused state?
5. How can I check the state of an item's checkbox
6. How do I programmatically (de)select an item?
7. How do I programmatically make an item (un)focused?
8. How do I programmatically set the state of an item's checkbox?
Preventing the user from altering item states
9. How do I prevent an item from being (de)selected?
10. How can I prevent an item from being (un)checked?
Finding items
11. How do I find the (first) selected item?
12. How do I find the item with the focus?
Columns
13. When I create my control with column 0 set for center or right justification, why is it drawn with left justification?
Sorting
14. When my sorting callback function is called, why are lParam1 and lParam2 always 0?
15. How can I sort the control when the user clicks on a column header?
Advanced
16. How can I get the contents of a control in another program?

1. When I try to insert information in the second, third, etc. columns, with InsertItem(), it doesn't work. Why?

LVITEM lvi;
::ZeroMemory(&lvi, sizeof(LVITEM));
// Insert item for col 0
lvi.mask = LVIF_TEXT;
lvi.pszText = "one";
m_ListCtrl.InsertItem(&lvi);
// Insert subitem for col 1
lvi.pszText = "two";
lvi.iSubItem = 1;
m_ListCtrl.InsertItem(&lvi);

You can't use any of the InsertItem() functions or messages to insert subitems. Instead, you must use SetItemText() (or ListView_SetItemText() or LVM_SETITEMTEXT). InsertItem() inserts the row and populates the first cell. In order to populate additional cells in that row, you must call SetItemText().

2. How do I make selection appear even when control doesn't have focus?

Use the style LVS_SHOWSELALWAYS when creating your control.

3. How do I select the entire row?

Use CListCtrl::SetExtendedStyle to set the style LVS_EX_FULLROWSELECT. Note that this requires version 4.70 or higher of the comctl32.dll.

4. How do I get the item's selected/focused state?

UINT uState = m_ListCtrl.GetItemState(iIndex, LVIS_SELECTED | LVIS_FOCUSED);
if (uState & LVIS_SELECTED)
	// Item is selected
if (uState & LVIS_FOCUSED)
	// Item has the focus

5. How can I check the state of an item's checkbox

Use CListCtrl::GetCheck() or ListView_GetCheckState()

6. How do I programmatically (de)select an item?

Select: m_ListCtrl.SetItemState(iItem, LVIS_SELECTED, LVIS_SELECTED);
Deselect: m_ListCtrl.SetItemState(iItem, 0, LVIS_SELECTED);

7. How do I programmatically make an item (un)focused?

Focused: m_ListCtrl.SetItemState(iItem, LVIS_FOCUSED, LVIS_FOCUSED);
Unfocused: m_ListCtrl.SetItemState(iItem, 0, LVIS_FOCUSED);

8. How do I programmatically set the state of an item's checkbox?

Use CListCtrl::SetCheck() or the following macro:

#ifndef ListView_SetCheckState
   #define ListView_SetCheckState(hwndLV, i, fCheck) \
      ListView_SetItemState(hwndLV, i, \
      INDEXTOSTATEIMAGEMASK((fCheck)+1), LVIS_STATEIMAGEMASK)
#endif

9. How do I prevent an item from being (de)selected?

10. How can I prevent an item from being (un)checked?

You'll need to handle LVN_ITEMCHANGING and return FALSE to allow the item to be (un)checked or (de)selected and return TRUE to disallow a change.

Here's some code that might help.

Add this to your CMyListCtrl class definition as a protected function:

// Returns TRUE if the item is checked, false if it is not or uState == 0
inline BOOL IsChecked(UINT uState) {return
(uState ? ((uState & LVIS_STATEIMAGEMASK) >> 12) - 1 : FALSE);}

Here's a sample function for handling LVN_ITEMCHANGING:

void CTestListView::OnItemchanging(NMHDR* pNMHDR, LRESULT* pResult)
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	
	// If old state is unchecked and new state is checked
	// then item is being checked.
	if ((! IsChecked(pNMListView->uOldState)) &&
		(IsChecked(pNMListView->uNewState)))
		MessageBox("Item is being checked");
	
	// If old state is checked and new state is unchecked,
	// item is being unchecked
	else if ((IsChecked(pNMListView->uOldState)) &&
		(! IsChecked(pNMListView->uNewState)))
		MessageBox("Item is being unchecked");

	// return FALSE (or 0) to allow change, TRUE to prevent
	*pResult = 0;
}//OnItemchanging

11. How do I find the (first) selected item?

First: int iItem = m_ListCtrl.GetNextItem(-1, LVNI_SELECTED);
Subsequent: iItem = m_ListCtrl.GetNextItem(iItem, LVNI_SELECTED);

12. How do I find the item with the focus?

int iItem = m_ListCtrl.GetNextItem(-1, LVNI_FOCUSED);

13. When I create my control with column 0 set for center or right justification, why is it drawn with left justification?

For some reason, the control doesn't pay any attention to the LVCOLUMN.fmt value when creating the column. However, you can change this value later by calling CListCtrl::SetColumn() (or using ListView_SetColumn or LVM_SETCOLUMN). Simply set LVCOLUMN.fmt to the desired value.

LVCOLUMN lvCol;
::ZeroMemory(&lvCol, sizeof(LVCOLUMN));
lvCol.mask = LVCF_TEXT;
lvCol.pszText = "Col0";
// Insert the column
int iCol = m_ListCtrl.InsertColumn(0, &lvCol);
// Set it to be centered
lvCol.mask = LVCF_FMT;
lvCol.fmt = LVCFMT_CENTER;
BOOL bRes = m_ListCtrl.SetColumn(iCol, &lvCol);

14. When my sorting callback function is called, why are lParam1 and lParam2 always 0?

Some versions of the documentation on CListCtrl::SortItems and LVM_SORTITEMS seem to imply that the values of lParam1 and lParam2 are the indices of the items to be sorted. This is not the case. They are the 32 bit values that can be assigned to each item via CListCtrl::SetItemData or via the lParam member of the LVITEM struct. If you have not assigned any data to these variables, then they will be zero when passed to your sort function.

15. How can I sort the control when the user clicks on a column header?

To capture the click event: Sorting the list when user clicks on column header
To draw a sort arrow on the header: Indicating sort order in header control

16. How can I get the contents of a list control in another program?

See the September 1997 Win32 Q&A by Jeffrey Richter in MSJ

Home

Posted by 디오디오
Posted by 디오디오
TAG 음악
콘서트 예매하고 취소하니 맘이 아프네.ㅠㅠ

이거로라도 위안삼아야지.;;

Posted by 디오디오
TAG 음악

복잡한 업무를 개발하다 보면 sp 를 분리해야 할 경우가 많습니다. 각각의 sp 가 asp 에서 직호출될 때도 트랜잭션이 보장되어야 하고 sp 를 중첩해서 호출할 때도 하나의 트랜잭션으로 처리되어야 합니다. 의외로 이런 상황이 자주 발생하는데, 단독호출/중첩호출 상황을 한 트랜잭션에 모두 커버할 수 있는 표준적인 sp 작성법은 부재한 실정입니다. 본 문서는 이런 상황을 비교적 깔끔하게 해결할 수 있는 sp 작성법을 알려드리고자 쓰여졌습니다. 간단한 시나리오를 가정해서 설명을 하도록 하겠습니다.
1. dbo.up_inner 를 먼저 개발
A라는 프로젝트에서 up_inner 라는 sp 를 만들었습니다. DB개발 가이드가 배포되기 이전의 일반적인 sp 작성법에 따르면 대체로 다음과 같은 방식으로 만들어집니다.

create proc dbo.up_inner
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
select (생략...)
insert (생략...)
if @@error <> 0
begin
rollback tran
return
end
update (생략)
if @@error <> 0
begin
rollback tran
return
end
commit tran

asp 에서 이 sp 를 호출해서 사용하는데 아무런 문제가 없습니다. 트랜잭션 처리도 잘 되어 있고 정상적으로 돌아갑니다.
2. dbo.up_outer 를 개발
dbo.up_inner 를 사용해서 프로젝트를 오픈했습니다. 그런데 운영업무 도중 어떤 요구사항 때문에 dbo.up_outer 를 만들고, 그 안에서 dbo.up_inner 를 call 해야 할 일이 생겼습니다. 당연히 dbo.up_outer 전체에서 한 트랜잭션에 모든 것이 처리되어야 합니다. 일단 다음과 같은 코드가 만들어 질 것을 예상할 수 있습니다.

create proc dbo.up_outer
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
insert (생략)
if @@error <> 0
begin
rollback tran
return
end
exec dbo.up_inner @cust_no
delete (생략)
if @@error <> 0
begin
rollback tran
return
end
commit tran

위의 코드를 하나하나 뜯어보겠습니다. 언뜻 보기에는 에러처리가 잘 되어 있는 듯 하지만 여러 문제점이 존재합니다.
exec dbo.up_inner @cust_no
이 부분이 가장 심각한 문제가 있습니다. 호출하는 것 자체는 문제가 아닙니다. 하지만 dbo.up_inner 에서 어떤 에러로 인해 rollback 을 했다고 가정합시다. 그런데 문제는 dbo.up_inner 에서 rollback 을 하면 dbo.up_inner 내부에서 시작한 트랜잭션만 rollback 하는 것이 아니라 자신이 속해있는 transaction context 를 모두 rollback 해버립니다. 즉, dbo.up_outer 에서 시작한 트랜잭션을 rollback 해버리는 것이지요.
이제 어떻게 될까요?
네… dbo.up_outer 의 commit 에서 에러를 냅니다. 만약 delete 문이 실패했다면, rollback 을 하려고 해도 dbo.up_inner 에서 트랜잭션이 이미 rollback 되었기 때문에 에러를 냅니다. 이런 상황은 여러 번 겪어보셨을 줄로 압니다. 그래서 기존의 코드들을 보면 dbo.up_inner 에서 트랜잭션을 빼는 방향으로 수정해서 이런 상황을 해결하고 있습니다. 하지만 아시다시피 dbo.up_inner 에서 트랜잭션을 제거하면 dbo.up_inner 가 단독으로 호출되었을 때 데이터 정합성을 보장받을 수 없죠. 데이터 맞추느라 짚더미에서 바늘찾기를 해보신 분들이라면 데이터 정합성의 중요성을 뼈저리게 느끼고 있으실 겁니다.
이 상황을 깔끔하게 해결하는 방법이 없을까요?
네 있습니다. 모든 sp 를 DB개발 가이드의 에러처리 샘플을 정확하게 지켜서 개발하시면 됩니다. ㅎㅎㅎ 개발 가이드의 에러처리 샘플은 중첩호출 상황을 염두에 두고 만들어진 것입니다. 이제 dbo.up_inner 와 dbo.up_outer 를 에러처리 샘플에 맞춰서 수정해보겠습니다.
[dbo.up_inner]

create proc dbo.up_inner
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
select (생략...)
insert (생략...)
if @@error <> 0
begin
goto HANDLE_ERROR -- 에러가 발생하면 공통 에러 처리 레이블로 점프
end
update (생략)
if @@error <> 0
begin
goto HANDLE_ERROR
end
commit tran
if @@nestlevel = 1 – 중첩레벨 1 은 asp 에서 직접호출
select -1 as ret_code
return -- 반드시있어야함! 이게없으면아래쪽의HANDLE_ERROR 까지실행하게됨
else -- 중첩레벨1 아닌 것은 외부sp 에서 중첩호출
return -1

HANDLE_ERROR:
if @@trancount > 0 rollback tran
if @@nestlevel = 1
select -1 as ret_code
else
return -1

볼드체로 된 부분에 주목해 주세요. 에러 처리 로직을 한군데로 몰았고, commit 후나 rollback 후에 @@nestlevel 을 체크해서 최종 결과 코드를 리턴하고 있습니다. @@nestlevel 은 중첩레벨을 나타내는 시스템 함수입니다. @@nestlvel 이 0 이면 asp 에서 호출한 것이므로 select 로 에러코드를 넘겨줍니다. @@nestlevel 이 0 보다 크면 외부 sp 에서 중첩호출한 것이므로 return 문으로 에러코드를 넘겨줍니다. 또는 OUTPUT 변수로 넘겨줄 수도 있겠습니다. (참고로 return 문은 numeric 데이터만 리턴가능합니다. 문자는 리턴할 수 없습니다)
[dbo.up_outer]

create proc dbo.up_outer
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
insert (생략)
if @@error <> 0
begin
goto HANDLE_ERROR
end
declare @ret_code int
exec @ret_code = dbo.up_inner @cust_no --dbo.up_inner에서 return하 고 결과코드를 받음
if @@error <> 0 or @ret_code < 0 -- @@error 와@ret_code 값에따라에러처리
begin
goto HANDLE_ERROR
end

delete (생략)
if @@error <> 0
begin
goto HANDLE_ERROR
end
commit tran
if @@nestlevel = 1
select -1 as ret_code
return -- 반드시있어야함! 이게 없으면 아래쪽의 HANDLE_ERROR까지 실행하게 됨
else
return -1
HANDLE_ERROR:
if @@trancount > 0 rollback tran – 항상 @@trancount를 체크해서 rollback
if @@nestlevel = 1
select -1 as ret_code
else
return -1

마찬가지로 볼드체 부분에 주목해주세요. dbo.up_inner 를 호출해서 @ret_code 를 받을 때는 위와 같은 방식으로 코드를 작성합니다. 그리고 exec 를 하자마자 바로 @@error 와 @ret_code 를 체크해서 에러처리를 수행합니다. Exec 후에 set @aaa = @bbb 와 같은 코드가 들어가면 그 순간 @@error = 0 이 되어 에러처리 로직이