본문 바로가기
[Java 개발자가 공부해본 C#] Stack Memory, Heap Memory, Variable, Reference 의 관계 안녕하세요 돼지왕왕돼지입니다. C# 을 공부하면서 그동안 뭔가 깔끔히 정리되지 않았던 Stack Memory, Heap Memory, Variable, Reference 의 관계에 정리가 잘 되는 그림 및 글을 발견하여 함께 공유하고자 합니다. 이를 이해하는 것은 Garbage Collection 을 운영하는 Java 와 C# 에 매우 중요합니다. void test(){ object a = 10; object b = 20; } 이런식으로 Stack 에 Heap 주소를 참조하는 a, b 각각의 variable 이 assign 됩니다. integer 이긴 하지만, object 에 값을 할당하였기 때문에 그 값은 Heap memory 에 assign 됩니다. 함수가 끝나면 기본적으로 local variable.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] 변수 초기화 ( Initialize ) 에 대하여. 안녕하세요 돼지왕왕돼지입니다. 이번에는 변수 초기화 ( Initialize ) 에 대해 알아보겠습니다. 기본적으로 C#의 변수 초기화는 Java 와 같은 맥락입니다. ( C# 이 Java 를 흉내낸 언어라는 말이 많은데, 사실여부를 떠나 닮은 점은 매우 많습니다. ) Local 변수를 initialize 를 하지 않은 상태에서 사용하려고 하면, Initialize 되지 않았다는 이유로 compile 자체가 되지 않습니다. 그럼 Global Variable 의 경우는 어떨까요? Global Variable 의 경우는 default 초기값이 assign 이 됩니다. 예를 들어 0 이 들어가는 것이겠죠. 다음 코드들을 통해서 개념을 잡아봅시다. using System; namespace BrainCSharp .. 2012. 4. 15.
[Java 개발자가 공부해본 C#] CLR ( Common Language Runtime ) 에 대하여. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 CLR ( Common Language Runtime ) 에 뭐하는 녀석인지 한번 알아보겠습니다. 이 CLR ( Common Language Runtime ) 은 자바의 JVM ( Java Virtual Machine ) 과 거의 같은 녀석이라고 보시면 되겠습니다. 계층도를 보았을 때 Class Libraries( .NET Framework ) 와 Application 을 연결하는 역할을 하고 있습니다. 요 CLR 은 말 그대로 .Net Framework 가 지원하는 Common Language ( C, C++, C#, Visual Basic 등 ) 이 돌아가는 가상머신 이라고 보시면 되겠습니다. 네이티브 코드로 작성되어 있는 프로그램들은 운영체제가 직접 실행할 수.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] C#에서 Exception 이 발생하면.. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 C#에서 Exception 이 발생했을 때의 상황에 대해 알아보겠습니다. 위의 스크린샷이 C#에서의 Exception 발생 상황입니다. 어디서 자주 본 화면이지요? "OO의 작동이 중지되었습니다." 와 "문제에 대한 해결 방법을 확인하는 중입니다." 라는 DIalog 가 나옵니다. 이 녀석의 정체가 바로 Exception 이라는 것을 C# 을 공부해보며 알았습니다. 사실 이것은 Console program 에 대한 exception 으로 System.IndexOutOfRangeException 이 발생했다는 것을 알 수 있지만, ( Java 에서는 IndexOutOfBoundException 이죠. ) 우리가 주로 마딱뜨리는 Exception 은 보통 MFC 의 E.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] HelloWorld. 안녕하세요 돼지왕왕돼지입니다. 오늘은 C# 으로 HelloWorld 를 한번 만들어보죠. // HelloWorld.cs using System; namespace BrainCSharp { class HelloWorld { static void Main( string[] args ) { Console.WriteLine( "Hello, World!" ); Constole.WriteLine( "Hello, {0}!", args[ 0 ] ); } } } // HelloWorld.java import java.lang.System; package BrainCSharp; class HelloWorld{ public static void main( String[] args ){ out.println( "Hello. .. 2012. 4. 12.
[Java 개발자가 공부해본 C#] C# 개발을 위한 프로그램. ( Visual Studio, Visual C# 2010 Express, Dream Spark 무료 다운 ) 안녕하세요 돼지왕 왕돼지입니다. C# 개발을 위한 프로그램 ( IDE ) - Visual Studio, Visual C# 2010 Express, Dream Spark ( Visual Studio Professional ) 에 대해 알아보겠습니다. Visual Studio MS 사에서 상업용으로 정식발매한 C, C++, C#, Visual Basic 등의 개발을 지원하는 IDE ( Integrated Development Environment ) 입니다. 이 녀석은 무료판이 없으며, 라이센스가 필요합니다. 이 녀석은 아래 명시한 녀석들에 비해 모든 프로그램 언어를 지원한다는 면에서 매우 편리합니다. 하지만, 가격이 비쌉니다. 에디션에 따라 가격은 천차만별이며 비싼 녀석은 몇백만원까지도 합니다. 개인 개발.. 2012. 4. 12.
[Java 개발자가 공부해본 C#] 더 나은 세상을 위한 C# ( C#의 등장배경, C#은 왜 필요한가?, 닷넷은 무엇인가? ) 안녕하세요 돼지왕 왕돼지입니다. "뇌를 자극하는 C# 4.0 프로그래밍" 이라는 책을 구입하여 오늘부터 공부를 시작해보았습니다. 오늘부터 쓰는 대부분의 글은 Java 언어를 main 으로 개발하고 있는 제가, 즉 Java 개발자가 공부해본 C# 에 대해 정리하는 글이 될 것입니다. 이번 글에서는 C# 의 등장배경과 C, C++ 도 있는데 C# 은 왜 필요한지, 닷넷은 무엇인지에 대해 간단히 정리해보겠습니다. C# 넌 누구니? C++ 이 C 언어에 + 1을 했다는 의미, 즉 C + 1 을 프로그래밍적으로 표현한 C++ 이라는 것은 알고 계시죠? 자 이제 이 C++ 에 ++ 를 한번 더 붙여보겠습니다. C++++ 이냐구요? 새로 더하는 ++ 을 기존에 있던 ++ 의 아래에 붙이면 바로 C# 이 됩니다. 이 .. 2012. 4. 12.
[소프트웨어 공학] 기업 문화란 무엇인가? 안녕하세요 돼지왕 왕돼지입니다. 오늘은 "기업 문화란 무엇인가?" 를 주제로 이야기해보고자 합니다. 이 글은 "글로벌 소프트웨어를 꿈꾸다" 를 요약 정리한 내용입니다. 48. 기업문화란 무엇인가? - 기업문화는 간단히 말해 일을 할 때 내 의지와는 상관없이 의식적으로 혹은 무의식적으로 따라할 수밖에 없는 환경. 49. 법으로 좋은 세상을 만들지 못한다. - 모든 프로세스와 방법론, 규칙을 법으로 명문화한다고 해서 위법한 행위를 모두 막을 수 있는 것은 아니다. 치밀한 개발자는 다 빠져나갈 수 있다. 위법한 행위를 막기 위해 필요한 것은 법이 아니라 윤리적이고 자발적인 문화다. -잘 된 KPI ( Key Performance Index ) 는 다음과 같은 사항들을 고려해야 한다. 1) 스펙은 적는가? 2).. 2012. 4. 12.
[소프트웨어 공학] 소프트웨어 개발은 기술이 아니라 예술이다. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 "소프트웨어 개발은 기술이 아니라 예술이다." 라는 주제로 이야기하고자 합니다. 이 글은 "글로벌 소프트웨어를 꿈꾸다." 내용을 요약 정리한 것입니다. 37. 건축가와 벽돌공, 누가 가치가 있는가? - 전체 소프트웨어에 미치는 영향을 생각하면 코딩하는 방법을 달리 한다. 안목을 크게 가지면 기획부터 개발, 품질, 유지보수, 고객지원 등까지 모든 면을 생각하게 된다. 그런 생각이 있어야 가치 있는 제품이 나온다. 38. 소프트웨어는 기법이 아니라 예술이며 정신세계이다. - 소프트웨어의 바깥 모습도 중요하지만 소스코드가 얼마나 아름다운가도 중요하다. 소스코드는 쓰레기처럼 만들어 놓고 겉에 보이는 제품이 아름답다고 하는 것은 어불성설이다. 소프트웨어 업계에도 감동할 만한.. 2012. 4. 12.
반응형