전체 글 147

ASP.NET 에러 - W3WP.EXE 자동 실행

상황:ASP.NET 을 디버깅 하기 위해서는 W3WP.exe 라는 프로그램을 이용해야 한다. 이때 딱히 따로 디버깅을 걸지 않았음에도 w3wp.exe [13664]에서 처리되지 않은 Microsoft .NET Framework 예외가 발생했습니다. 다음 오류로 인해 Just-In-Time 디버깅이 실패했습니다. 설치된 디버거가 Just-In-Time 디버깅을 사용하지 않습니다. Visual Studio에서는 도구/옵션/디버깅/실시간으로 적시 디버깅을 활성화할 수 있습니다.이런 오류가 발생하면서 w3wp 가 실행되는 경우가 있다. 원인 :내가 찾은 원인은 지원되지 않는 문법을 사용한 것이다.현재 회사에서 사용하는 4.5.3 버전의 .NET 같은 경우는 C# 5 버전을 사용해서 람다, ?(널체크) 문법 등을..

에러 기록 2024.12.03

(5) C# 기초 문법 - 연산자 오버로딩, foreach, 이터레이터, 가변배열 등

1. 연산자 오버로딩C#에서는 +, -, /, *, % 와 같은 연산자를 오버로딩 할 수 있다. 이를 이용하면 기본형이 아니여서 계산이 안되는 타입 역시 계산하는 것처럼 표현할수 있다. 객체를 선언하지 않고 일반 연산자처럼 사용하기 위해서 static 으로 선언해두는 것이 좋다.public [static] 반환타입 operator [+, -, /, *, %] (매개변수1, 매개변수2) {}이런 식으로 선언할 수 있다.class Car{ public string name; public string maker; public Car(string name, string maker) { this.name = name; this.maker = maker; } ..

공부/C# 2024.10.17

(4) C# 기초 문법 - 프로퍼티(속성), 인덱서

1. property(프로퍼티/ 속성)자바에서는 get/set 함수를 이용해 속성값을 바꾸거나 조회한다. 이를 좀 더 쉽게 구현하도록 만든 것이 프로퍼티라고 할 수 있다.클래스 내부, 메서드 바깥에    public  [반환 형식] 프로퍼티 이름 {get; set; }형식으로 선언한다. 이때 프로퍼티 이름은 속성 이름이나 논리적으로 속성을 나타내는 이름이 좋다.class Car{ private int wheelVar; public int Wheel{ get{ return wheelVar;} // 조회할때 자동 호출 set{ wheel = value; } // 대입할때 자동 호출 }}이런 식으로 선언하면 자동으로 프로퍼티를 조회하거나 호출할때 호출된다..

공부/C# 2024.10.16

(3) C# 기초 문법 - readonly, out, ref, 가변길이 매개변수 등

1. readonly 필드읽기 전용 필드. const 와 차이점은 선언시 초기화하지 않아도 된다. 다만, 한번이라도 초기화되어 값을 갖고 있으면 변경 불가능한 것은 같다.2. out 매개변수반환형 매개변수. 초기화 되지 않은 매개변수를 메서드에 전달하기 위한 키워드. 이때 해당 값을 의미있게 사용하고자 하면 메서드 내부에서 초기화해줘야 한다.public void TestMethod(out int num){ ... // out int 형식의 매개변수를 받는 메서드}static void Main(){ int num; TestMethod(out num); // 초기화되지 않은 매개변수 전달} 3. ref 매개변수참조 전달 방식. 기본형의 변수들은 메모리에 값을 저장하는 방식으로 저장됨. ..

공부/C# 2024.10.16

(2) C# 기초 문법 - namespace, 클래스, 구조체, static, 접근 제한자 등

1. namespace자바의 패키지와 대응되는 개념.namespace 이름 {}  형식으로 선언하며, 네임스페이스만 다르면 같은 이름의 클래스를 선언해도 충돌이 일어나지 않는다. using 지시문을 통해 외부 네임스페이스의 코드를 불러올수 있다. 2. 클래스class 이름 {} 형식으로 선언한다.  3. 구조체데이터를 하나의 이름으로 묶어 관리하는 역할을 한다. 힙이 아닌 스택 영역에 저장된다.struct 이름 {} 형식으로 선언한다. 4. 접근 제한자class, 변수, 인터페이스 등에 붙일수 있다.private: 같은 클래스 내부에서만 사용 가능.protected : 같은 클래스 내부, 또는 상속받는 자식 클래스 내부에서만 사용 가능.protected internal : 같은 어셉블리(dll 파일) 내..

공부/C# 2024.10.16

(2) C# 기초 문법 - 기본형, 변수, 상수, 문자

C#의 시작이 java 인 만큼, java 와 유사한 점이 많다.그렇기에 이 글에서는 c#의 세부적인 내용까지 모두 말하기보단, java와의 차이점을 중점에 두고 C# 만의 차별점을 말하고자 한다. 1. 다수의 변수 선언 및 초기화int a=b=c=d=10;C# 에서는 이런식으로 여러 변수를 한번에 선언과 동시에 초기화하는 것이 가능하다. 2. 상수const NAME = "홍길동";상수를 선언할때는 final 예약어 대신 JS처럼 const 를 사용한다. 3.  문자열string line = @"\안녕하세요\ 반가워요"이렇게 앞에 @를 붙이고 문자열을 적으면 공백, 특수 기호를 포함하여 문자열을 그대로 저장한다. 출력결과: \안녕하세요\                   반가..

공부/C# 2024.10.16

(1) C# 이란?

1. C#과거 마이크로소프트에서 JAVA 를 사용해서 개발했다. 그러나 MS 에서 자신들의 사정에 맞춰 JVM 에 기능을 추가했고, 이에 당시 JAVA 를 소유하고 있던 썬 마이크로 시스템즈에서 소송을 걸어 새롭게 만든 언어다.역사가 역사인 만큼 문법과 작동 방식 등이 JAVA 와 유사한 점이 많으며, java 보다 더 개발자 편의에 맞춰 발전시킨 부분도 존재한다.  2. .NET마이크로소프트에서 만든 개발 및 실행 환경이다.FCL(Framework Class Library)라는 이름의 공용 라이브러리와 CLR(Common Language Runtime) 이라고 불리는 VM(가상 머신) 이 합쳐진 것이다.C#, F#, VS 등의 언어로 작성된 코드는 컴파일되면 마이크로소프트사의 중간 언어로 변환되는데, ..

공부/C# 2024.10.16

AWS 챌린지 마스터리 오프라인 (2024/06/22)

클라우드와 관련된 직무는 많다.IT Sales, Digital Marketing, System Engineer, Techincal Sales Engineer 등 - 클라우드 판매자측Solutions Architect, Account Manager, Cloud Engineer, Support Engineer 등 - 구매자측?? 커리어를 바라보는 두가지 관점기술/ 비지니스기술 : 클라우드와 관련된 어떤 기술을 어떻게 활용할 것인가IaaS, SaaS, Developer, Hardware/Solution Vendor 등등. 비지니스 : 클라우드를 사용하여 어떤 비지니스를 어떻게 만들 것인가.클라우드 서비스 회사, 클라우드 솔루션 회사, 클라우드 고객사 등등.1. 취업과 이직(1) 연결성과거에 내가 한 경험, 내..

카테고리 없음 2024.06.22

IO 와 NIO 를 이용한 입출력 (2/2)

NIO자바 4에서 새롭게 등장하고 7에서 재정비된 NIO 는 IO 와 비교해 여러 강점을 가진다. 1. MMIO(Merory-Mapped IO) 방식으로 버퍼 지원2. 넌블로킹 모드 지원3. Scatter/Gather 지원4. 파일락 이전 포스팅에 1,2,3, 의 내용이 정리되어 있다. 파일락의 경우, 어떤 파일을 수정하는 동안 다른 쓰레드에서 읽기 작업을 가능하게 할지 설정하는 기술이다. MMIO일반적으로 I/O 작업이 이뤄질때, 이를 위한 별도의 메모리 공간이 할당된다. 문제는 I/O 작업이 일어날 때마다 이 별도의 메모리 공간(자바에서는 Heap)을 사용하기 위한 시스템콜이 일어나고, 이 작업이 상당한 자원을 소모한다는 것이다.이 문제를 해결하기 위해 운영체제는 MMIO 라는 기술을 지원한다.mmi..

공부/java 2024.05.17

IO 와 NIO 를 이용한 입출력 (1/2)

자바에는 입출력을 위한 I/O API 존재한다.I/O 클래스는 두개가 존재하는데, 기존 I/O 와 자바4에 등장해서 자바 7에 재정리된 버퍼를 사용하는 New I/O 다. 버퍼버퍼에 대해 쉽게 이해하기 위해 먼저 마트에서 장을 본다고 가정해보자. 살 물건을 하나씩 계산대로 가지고 가기 보다는, 바구니에 담아서 한번에 가져가는 것이 이동시간도 적게 걸리고 힘도 덜 들 것이다. 버퍼는 바로 이 바구니와 비슷한 역할을 한다. 즉, 데이터를 다루기 전 일정 크기만큼 한번에 가져와 가지고 있는 저장소다. 덕분에 데이터를 사용하기 위해 매번 데이터를 찾으러 갈 필요가 없어 실행 시간이 빨라진다는 장점이 있다. 기본 I/O 클래스를 이용한 버퍼코드로 살펴보기에 앞서 일부 세팅이 필요하다.1. 더미 파일 생성파워쉘에서..

공부/java 2024.05.13