본문 바로가기
728x90
반응형

자바32

Java 스프링부트를 이용한 채팅 프로그램 구축하기: 웹소켓 활용, 설정 및 테스트 방법 (1) 오늘을 자바 스프링부트 채팅 프로그램 만들기 실습을 진행 하겠습니다. 먼저 spring.io 에서 진행하고자 할 스프링부트 프로젝트를 만들어봅니다. 해당 실습은 자바 17버전과 gradle로 진행 하겠습니다. dependencies - Spring Web - WebSocket - Lombok GENERATE를 클릭하고 intellij에서 프로젝트 임포트 해주세요~ 해당 프로젝트의 구조입니다. chatEx 패키지의 main 파일과 config handler 패키지의 handler 파일을 볼 수 있습니다. 클라이언트가 작성한 메시지를 받아 처리해줄 handler입니다. 받은 메시지를 console log에 payload에 담아 출력하고 환영 메시지를 보내줍니다. 다음은 config 파일입니다. websock.. 2023. 2. 20.
자바 객체지향 문법 - final, String, 접근제한자, 인터페이스 부모가 될 수 없는 클래스 - 상속을 금지 시키려면 클래스를 정의할 때 final 키워드를 사용한다. - public fianl class 클래스명 {} String 클래스는 왜 final 일까? - 다음 예제를 보며 알아보자 String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); String str4 = new String("hello"); 다음과 같은 코드에서 str1,2,3,4를 출력한다면? 답 : hello hello hello hello 가 나오게 됨 만약 if(str1 == str2){ } if(str1 == str3){ } if(str3 == str4){ } 이경우에는 첫번째 if문만 참이된다. 이유는 .. 2023. 2. 16.
자바 객체지향 문법 - 생성자, 추상 생성자 - 인스턴스를 생성할 때 사용한다. - 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용한다. - 클래스 작성시 생성자를 하나도 만들지 않았다면 자동으로 기본 생성자가 생성된다. - 기본생성자는 매개변수를 하나도 받지 않는 생성자를 말한다. - 생성자를 하나라도 만들어 준다면 기본 생성자는 사라지고 만들어준 생성자를 사용하게 된다. - 이때 private로 만들어진 필드는 외부에서접근이 불가능 하기 때문에 setter getter를 사용한다. 생성자 오버로딩 - 생성자는 매개변수의 개수가 다르거나, 타입이 다르다면 여러개를 가질 수 있다. 자신의 생성자를 호출 할때는 this()를 사용한다. - this는 인스턴스 자기 자신을 참조할 때 사용하는 키워드이다. - this() 생성자.. 2023. 2. 16.
객체지향 문법 - 필드 선언 필드 선언 방법 [접근제한자] [static] [final] 타입 필드명 [=초기값]; - 대괄호 안에 있는 내용은 생략가능하다는 뜻이다. - 접근제한자는 public, protected, 아무것도 없는 경우(default), private이 올 수 있다. - 필드명은 식별자 규칙을 따른다. 다만 필드 첫번째 글자는 소문자로 시작하는것이 프로그래머 관례 - 타입(type)은 기본형(boolean, byte,char,int,long,float,double)과 참조타입(class, 인터페이스, 배열)등이 나올 수 있다. - 초기값이 없을 경우 참조형일 땐 null , boolean일땐 false, 기본형은 모두 0으로 초기화 된다. 값을 참조하지 않을 때 NullPointException을 볼 수 있다. s.. 2023. 2. 16.
Java 객체지향 프로그래밍 기초: 클래스, 메서드, 객체와 객체 사이의 커뮤니케이션 이해하기 클래스는 필드와 메서드를 가진다. 필드는 클래스의 속성이라고 말할 수 있다. 메서드는 클래스의 기능이라고 말할 수 있다. *구조 접근제한자 class 클래스 이름 { 필드들; 생성자들; 메소드들; } 자판기로 이해하기 자판기의 동작을 생각해보자 - 동전 넣기 - 잔액 보여주기 - 물건 선택 버튼 클릭하기 - 물건을 뱉기 이런 기능들을 메서드라 함 개발자는 필요한 기능을 만들어야함 이러한 의미로 요구사항 정의가 굉장히 중요함 여기서 동사는 메서드와 관련 여기서 명사는 객체와 관련 자판기는 어떤 객체로 구성되어 있는가? - 액정표시장치 - 동전통 - 상품배출기 - 상품케이스 - 상품 - 동전 - 동전배출기 - 상품선택버튼 - 동전배출버튼 - 이걸 담고 있는 자판기 우리가 프로그램을 만든다는 것은 객체와 객체.. 2023. 2. 14.
Java OOP 핵심 개념 다루기: 추상화, 캡슐화, 오버로딩, 상속, 오버라이딩 및 프로퍼티 예시 Book b = new Book(); Heap 이라는 메모리에 Book 인스턴스가 하나 생성되게 됨 Heap 메모리에 생성된 Book 인스턴스를 참조하는 변수가 b인 것 변수 b 앞의 Book을 레퍼런스 타입이라고 함 Book()은 생성자라고 함 new Book(); 은 인스턴스를 만들라는 것 new Book(); 만 선언 하면 메모리에는 있지만 사용할 수 없는 쓰레기(garbage)라고 함 추상화란 ? - 중요한 것은 남기고 불필요한 것은 제거한다. 캡슐화란 ? - 관련된 것을 잘 모아서 가지고 있는 것을 캡슐화(encapsulation)라고 말합니다. 관련된 것을 잘 모아서 가지고 있을수록 응집도(Cohesion)가 높다고 표현한다. 오버로딩이란 ? - 같은 이름의 메소드가 여러개 있는데 매개 .. 2023. 2. 14.
자바 기초 프로그래밍 - Java 사용자 정의 함수 작성 방법: 제곱 함수 예제와 설명 다음은 Java로 된 사용자 정의 함수의 예입니다. public class CustomFunctionExample { public static int square(int x) { return x * x; } public static void main(String[] args) { int result = square(5); System.out.println("The result is: " + result); } } 함수 square는 public static int square(int x) 라인으로 선언됩니다 'public' 키워드는 클래스 외부에서 함수에 액세스할 수 있음을 의미합니다. 'static' 키워드는 함수가 클래스의 특정 인스턴스가 아니라 클래스에 속함을 의미합니다. 함수의 반환 유형은 int.. 2023. 2. 14.
자바 기초 프로그래밍 - Java 기본 입출력(input & output) 이해하기: Scanner 사용법과 사용자 입력 처리 예제 다음의 java 예제를 통해 기본 입출력에 대해서 알아보자. import java.util.Scanner; public class InputOutputExample { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter your name: "); String name = sc.nextLine(); System.out.print("Enter your age: "); int age = sc.nextInt(); System.out.println("Hi, " + name + ". You are " + age + " years old."); } } 1. import java.util... 2023. 2. 14.
자바 기초 프로그래밍 - Java 루프와 조건문 마스터하기: for, while, do-while, if-else, switch 사용법과 차이점 Java에서 루프 및 조건문은 다른 프로그래밍 언어와 유사합니다. 그러나 Java에서 이러한 구문의 구문 및 사용법에는 몇 가지 차이점이 있습니다. 주요 차이점은 다음과 같습니다. 1. for 루프: Java에서 for 루프는 다른 언어와 비교하여 약간 다른 구문을 사용합니다. Java에서 for 루프의 구문은 다음과 같습니다. for (initialization; condition; iteration) { // code to be executed } 여기서 initialization은 루프 제어 변수의 초기 값이고, condition은 루프가 계속 실행되어야 하는지 여부를 결정하는 부울 식이며, 각 반복 후에 iteration 루프 제어 변수의 값을 업데이트하는 명령문입니다. 2. while 루프: J.. 2023. 2. 14.
자바 기초 프로그래밍 - Java 연산자(Operator) 이해하기: 산술, 관계, 논리, 할당, 비트 연산자 및 instanceof 사용법 연산자는 결과를 생성하기 위해 하나 이상의 피연산자(값 또는 변수)에 대해 연산을 수행하는 프로그래밍의 기호 또는 토큰입니다. Java에는 다음과 같은 여러 유형의 연산자가 있습니다. - 산술 연산자: 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 및 모듈러스(%)와 같은 수학 연산을 수행합니다. - 관계 연산자: 두 피연산자를 비교하고 같음(==), 같지 않음(!=), 보다 큼(>), 보다 작음(=)과 같은 부울 결과를 생성합니다. ), 작거나 같음(>>)와 같은 비트 수준 연산을 수행합니다. - Instanceof 연산자: 이 연산자는 객체가 특정 클래스의 인스턴스인지 또는 인터페이스 구현인지를 결정합니다. 다음은 비트 연산자와 instanceof 연산자에 대해 자세히 알아 보겠습니다. AND.. 2023. 2. 13.
728x90
반응형