분류 전체보기 143

(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

자바 - Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling ...

발생ObjectMapper 을 이용한 객체 직렬화 도중에 문제가 발생했다. 원인에러 메시지에 나와있다.요약하면 자바 8 LocalDateTime 을 제공하지 않으니 ' jackson-datatype-jsr310' 모듈을 추가하라는 말이다. 해결먼저 jackson 버전을 확인해야 한다. jackson 2.8.0 이전 버전에는 jackson-datatype-jsr310 모듈을 추가할수 없다.다행히 내 jackson 버전은 2.15.3 버전이다.그런데 이상한 점을 발견했다. 이미  jackson-datatype-jsr310 모듈이 추가되어 있는 것이다. ObjectMapper 란?직렬화와 역직렬화를 제공하는 Jackson 라이브러리 클래스다. 다만 복잡한 데이터 유형은 사용자가 직접 어떤 식으로 직렬화를 할지..

에러 기록 2024.05.05

자바 - Junit5 Jupiter 를 이용한 단위 테스트 시작

1. 프로젝트의 main 폴더 아래에 test 폴더를 만든다. test 폴더 내부에 테스트 클래스를 만들지 않으면 정상적으로 junit 클래스를 import 해올수 없어 테스트 코드를 실행할수 없다. 2. @Test 어노테이션을 이용한 테스트 코드 메서드 작성 @Test void test(){ } 해당 어노테이션이 붙은 메서드는 main 클래스처럼 실행이 가능해진다. main 클래스가 그렇듯, 반환값은 존재하지 않는다. **** 만약 @Test 어노테이션의 import 클래스가 org.junit.jupiter.api.Test 가 아니라면 라이브러리를 추가해야 한다. gradle의 경우 다음의 코드를 작성해줘야 한다. dependencies { testImplementation 'org.junit.jupi..

공부/java 2024.04.03

스프링 - webSocket 을 이용해서 채팅 구현하기

webSocket : 2011년에 나온 비교적 최신 기술이며, http 처럼 일종의 통신 규약이다. 한번 연결된 이후에 계속해서 연결 상태가 유지되는 통신이라고 생각하면 된다. 흐름: 1. 스프링 내부에서 webSocket 요청을 받을 endPoint 설정 2. 자바 스크립트 - 스프링간의 webSocket 통신 연결 3. 요청(메시지)이 들어올시 처리될 코드 작성 실제 코드: 0. websocket 을 사용하기 위한 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-websocket' 1. WebSocketConfig 클래스 @Configuration @EnableWebSocket @RequiredArgsConstructor p..

공부/springboot 2024.03.08

스프링 - url 요청시 이전 url 에서 Error during execution of processor 'org.thymeleaf.spring6.processor.SpringInputGeneralFieldTagProcessor' (template: "layout-main/layout" - line 135, col 19) 가 발생하는 오류

이 url 에서 이 url 로 이동하니 이처럼 해당 html 을 열수 없다고 나온다. 간단한 템플릿 오류로 타임리프 문법 실수를 생각했는데, 그 아래의 에러 내용을 더 보다보니 이해할수 없는 내용이 나왔다. layout-main/layout 파일에서 오류가 발생했다는 말이다. 그리고 layout-main/layout 는 이전 화면, localhost:8080 의 화면이다. 다시 정리하면, 이전 화면에서 오류가 나서 다음 화면으로 못넘어간다는 말이 되는데, 문제는 정작 "/" 로 요청을 날릴때는 어떤 오류도 발생하지 않는다는 것이다. 그렇다고 "/club?clubNo=1" 의 url 이 "/" 으로 가거나, "layout-main/layout" html 파일에 접근하지도 않는다. 더 내려보면 "layout..

카테고리 없음 2024.03.02