C#과 Java는 모두 객체지향 프로그래밍 언어로서, 각각의 생태계에서 널리 사용되고 있는 언어입니다.
오늘의 포스팅은 C#과 Java의 특징, 문법 차이에 대해 설명하겠습니다.
1. C#
(1) 개발 환경 및 플랫폼
주로 Microsoft의 .NET 플랫폼에서 사용됩니다.
Visual Studio는 C# 개발을 위한 통합 개발 환경(IDE)로 널리 사용됩니다.
(2) 생태계
.NET 생태계에 편입되어 있으며, ASP.NET, Xamarin 등 다양한 플랫폼 및 프레임워크에서 사용됩니다.
(3) 언어 특징:
이벤트 기반 프로그래밍, 속성과 이벤트를 간단하게 정의하는 특징이 있습니다.
LINQ(Language Integrated Query)를 통해 데이터베이스 및 컬렉션과 같은 데이터에 쿼리를 수행할 수 있습니다.
(4) 기타
Windows 기반 응용 프로그램 개발에 주로 사용되지만, .NET Core 및 .NET 5, .NET 6 등을 통해 크로스 플랫폼 개발이 가능해지고 있습니다.
*LINQ
LINQ는 다양한 형태의 데이터 소스를 지원하며, 컬렉션, 데이터베이스, XML, Entity Framework와 같은 데이터 소스에 대한 쿼리를 일관된 방식으로 작성할 수 있습니다. LINQ 쿼리는 SQL 문법과 유사하지만, 코드 내부에 직접 통합되어 있어 형식 안전성을 유지하면서 쿼리 작성이 가능합니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
// Print the result
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
2. JAVA
(1) 개발 환경 및 플랫폼
주로 Oracle JDK, OpenJDK 등의 자바 개발 키트를 사용하여 다양한 플랫폼에서 실행됩니다.
Eclipse, IntelliJ IDEA, NetBeans 등의 IDE를 사용할 수 있습니다.
(2) 생태계
Java는 다양한 플랫폼에서 사용되며, 대규모 엔터프라이즈 응용 프로그램, 웹 개발, Android 앱 등 다양한 분야에서 사용됩니다.
(3) 언어 특징
JVM(Java Virtual Machine)에서 실행되는 중간 언어로 컴파일되어 크로스 플랫폼 가능합니다.
멀티스레딩 및 가비지 컬렉션과 같은 특징으로 안정성과 생산성을 제공합니다.
(4) 기타
Write Once, Run Anywhere(WORA) 철학에 따라 한 번 작성한 코드를 여러 플랫폼에서 실행할 수 있도록 합니다.
Android 앱 개발에도 널리 사용되는 언어 중 하나입니다.
3. C#, JAVA 문법 차이
(1) C#
using System;
class Program
{
static void Main()
{
// 변수 및 데이터 형식 선언
int number = 42;
string name = "John";
// 조건문
if (true)
{
// code
}
else
{
// code
}
// 반복문
for (int i = 0; i < 5; i++)
{
// code
}
// 함수 선언
int result = Add(10, 20);
// 클래스 선언
MyClass myObject = new MyClass();
myObject.MyProperty = 42;
myObject.MyMethod();
// 예외 처리
try
{
// code
}
catch (Exception ex)
{
// handle exception
}
finally
{
// code
}
}
static int Add(int a, int b)
{
return a + b;
}
class MyClass
{
public int MyProperty { get; set; }
public void MyMethod()
{
// code
}
}
}
(2) JAVA
public class Main {
public static void main(String[] args) {
// 변수 및 데이터 형식 선언
int number = 42;
String name = "John";
// 조건문
if (true) {
// code
} else {
// code
}
// 반복문
for (int i = 0; i < 5; i++) {
// code
}
// 함수 선언
int result = add(10, 20);
// 클래스 선언
MyClass myObject = new MyClass();
myObject.setMyProperty(42);
myObject.myMethod();
// 예외 처리
try {
// code
} catch (Exception ex) {
// handle exception
} finally {
// code
}
}
static int add(int a, int b) {
return a + b;
}
static class MyClass {
private int myProperty;
public int getMyProperty() {
return myProperty;
}
public void setMyProperty(int value) {
myProperty = value;
}
public void myMethod() {
// code
}
}
}
'#IT 업무노트' 카테고리의 다른 글
EAI Inhouse 개발 VS 솔루션 도입 (0) | 2024.01.06 |
---|---|
쿠버네티스란 무엇인가? (0) | 2024.01.06 |
시스템 오픈 전 통합테스트란 무엇인가? (0) | 2024.01.05 |
도커 컨테이너 도커이미지 가상머신 도대체 무슨 말이야? (0) | 2024.01.04 |
WBS 작성 목적과 기업에서 사용하는 Template 공유 (0) | 2024.01.04 |