본문 바로가기

분류 전체보기59

자바 API 활용 및 API 만들기 실제로 유틸성 API를 제작하는 것은 유지보수성과 가독성에 큰 영향을 줍니다. 언제 API를 만들어 사용할지 고민해보시면 좋겠습니다. Course 2Part 1. 자바 API 활용 및 API 만들기CH1. 우리가 사용하게 될 클래스들(API)직접 만들어서 사용하는 class들개념:직접 만들어서 사용하는 클래스는 개발자가 특정 기능을 수행하기 위해 정의하는 클래스입니다. 이러한 클래스는 애플리케이션의 특정 요구사항을 충족시키기 위해 설계됩니다. 사용자 정의 클래스는 고유의 필드와 메소드를 포함하며, 객체 지향 프로그래밍의 원칙에 따라 재사용 가능하고 확장 가능합니다.예시:// Person 클래스를 정의합니다.class Person {    // 클래스의 필드    private String name;   .. 2024. 11. 29.
추상클래스와 인터페이스의 등장 자바 최상위 클래스 Object 추상클래스와 인터페이스, 다형성 등 헷갈리면서도 중요한 개념 숙지  CH5. 추상클래스와 인터페이스의 등장다형성을 보장한다는 의미는 무엇인가개념:다형성은 동일한 메서드 호출에 대해 다양한 구현이 가능한 것을 의미합니다. 사람 클래스의 추상 메서드를 다양한 하위 클래스에서 구현함으로써 다형성을 보장합니다.다형성을 보장한다는 것은 객체 지향 프로그래밍에서 유연하고 확장 가능한 코드를 작성하는 데 중요한 요소입니다.예시:interface Activity {    void perform();}class Student implements Activity {    public void perform() {        System.out.println("Student is studying");    }}class .. 2024. 11. 29.
객체지향 프로그래밍 설계하기 & 상속관계에서 객체생성 및 Override 상속과 다형성은 객체지향에서 매우 기본적이고 중요한 개념입니다. 레퍼런스를 기반으로 반복적으로 숙지하시면 좋다. part4. 객체지향 프로그래밍 설계하기CH2. 상속관계에서 객체생성 및 Override동작측면에서 클래스 설계하기개념:객체 지향 프로그래밍에서 클래스 설계는 매우 중요합니다. 특히 상속 관계에서는 부모 클래스와 자식 클래스 간의 역할과 관계를 명확히 정의해야 합니다. 동작측면에서 클래스를 설계할 때에는 각 클래스의 책임과 행동을 고려해야 합니다.예시:객체 지향 프로그래밍에서 클래스 설계는 매우 중요합니다. 특히 상속 관계에서는 부모 클래스와 자식 클래스 간의 역할과 관계를 명확히 정의해야 합니다. 동작측면에서 클래스를 설계할 때에는 각 클래스의 책임과 행동을 고려해야 합니다.// 클래스 설계.. 2024. 11. 29.
Static과 JVM 모델 이해 객체지향의 전반과 특히 JVM의 경우 추후 디버깅이나 에러 해결에 직접적인 도움이 되기 때문에, 꼭 숙지하면 좋다 CH5. 배열과 클래스의 관계* 동일한 구조와 이질적인 구조* 개념: 배열은 동일한 데이터 형식을 가진 요소들로 구성될 수 있으며, 이를 동일한 구조라고 합니다. 반면에 서로 다른 데이터 형식이나 클래스의 요소들로 이루어진 배열은 이질적인 구조를 가집니다.* 예시:* // 동일한 구조 * int[] numbers = {1, 2, 3, 4, 5}; * * // 이질적인 구조 * Object[] objects = {newString("Hello"), new Integer(10), new Double(3.14)};* * * 기본배열과 객체배열의 관계* 개념: 기본배열은 기본 데이터 형식(int, .. 2024. 11. 29.
객체지향 프로그래밍(OOP) part3. 객체지향 프로그래밍(OOP)CH1. 클래스로 객체 모델링하기사용자 정의 자료형데이터 저장을 위해서는 변수가 필요하다, 그런데 실제 세상의 모든 데이터를 자바의 기본 자료형 만으로 나타낼 수 있는가?→x자바의 기본 자료형은 정수, 실수, 문자, 불리언 등과 같은 간단한 데이터 유형을 나타냅니다.따라서 한 객체의 데이터를 저장하기 위한 변수를 선언하는 자료형을 “객체 자료형”이라고 합니다.객체와 변수의 차이변수:객체:차이점: 변수는 값을 저장하고 참조하기 위한 식별자이며, 객체는 속성과 메서드를 가진 클래스의 인스턴스입니다. 변수는 단일 값을 저장하는 데 사용되지만, 객체는 관련 데이터와 동작을 캡슐화합니다.클래스란?객체생성과정의 이해생성자 메서드와 this생성자 메서드this 키워드CH2. 클.. 2024. 11. 29.
인텔리제이 단축키 학습 내용JAVA 프로그래밍인텔리제이 단축키 - 검색, 코딩, 디버깅클래스로 객체 모델링꿀팁단축키 요약Optimize Imports 단축키 : ⌃⌥O 코드에 작성되어 있는 불필요한 import 문을 삭제/추가/정렬하여 최적화 해주는 기능입니다. 사용하지 않는 import문은 삭제를 하고, 특정 패키지의 여러 클래스나 인터페이스를 개별적으로 import 하고 있으면 이를 묶어 상위 패키지의 전체를 import, 그리고 package 명에 따라 정렬까지 해주는 기능입니다. 코드를 작성하고 Git에 코드를 push 하기 직전에 import 구문을 정리하기 위해 자주 사용합니다.Override Method 단축키 : ⌃O Override/Implements 할 함수의 코드를 작성해주는 기능입니다. 상속받은 클래.. 2024. 11. 29.
DB 데이터베이스2 Part. DB 데이터베이스CH4. 조건에 맞는 데이터 가져오기조건에 맞는 데이터 가져오기(where)개념:데이터베이스에서 조건을 만족하는 특정 데이터를 선택하기 위해 사용되는 절이다.예시는 employees 테이블에서 department_id가 10인 모든 직원 데이터를 선택한다.예시:SELECT * FROM employeesWHERE department_id = 10;비교연산자(=, >, =, 개념:조건식에서 사용되어 특정 값을 비교하거나 범위를 지정하는 데 사용된다.예시:SELECT * FROM productsWHERE price > 100;논리연산자(not,and,or)개념:여러 개의 조건을 조합하여 복잡한 검색 조건을 만들 때 사용된다.예시는 orders 테이블에서 2023년 1월에 발생한 주문.. 2024. 11. 29.
DB 데이터베이스1 Part. DB 데이터베이스CH1. 오리엔테이션데이터, 데이터베이스 그리고 DBMS개념:예시:-- 데이터베이스 생성CREATE DATABASE School;-- 학생 테이블 생성CREATE TABLE Students (    StudentID INT PRIMARY KEY,    Name VARCHAR(50),    Grade FLOAT);데이터베이스 언어와 SQL개념:예시:-- SQL 문장: 학생 테이블에서 이름이 'John'인 학생 조회SELECT * FROM Students WHERE Name = 'John';MySQL, MySQL Workbench 설치 및 구성개념:예시:MySQL 설치: https://dev.mysql.com/downloads/> 에서 설치 파일 다운로드 및 설치.MySQL Wor.. 2024. 11. 29.
Collection Framework API 이해 및 활용 & 람다와 스트림 API 활용 람다식은 정말 다양한 곳에서 코드 양을 줄이고, 가독성을 높이는 과정에서 필수적으로 사용됩니다.어떻게 사용하면 좋은 코드를 작성할 수 있을지 지속적으로 고민해보시길 바랍니다. Part 2. Collection Framework API 이해 및 활용CH3. 람다와 스트림 API 활용하기함수형 인터페이스개념:함수형 인터페이스는 오직 하나의 추상 메서드만을 가지는 인터페이스입니다. 이 인터페이스는 람다 표현식과 함께 사용되기 위해 설계되었습니다. 자바에서는 @FunctionalInterface 어노테이션을 사용하여 함수형 인터페이스임을 명시할 수 있습니다.예시:@FunctionalInterfaceinterface MyFunctionalInterface {    void execute();}public clas.. 2024. 11. 29.
인터페이스 기반의 프로그래밍 & 자바 제네릭 Part 1. 자바 API 활용 및 API 만들기 CH4. 인터페이스 기반의 프로그래밍인터페이스 기반의 프로그래밍이란개념:인터페이스 기반의 프로그래밍은 객체 지향 프로그래밍(OOP)에서 중요한 개념으로, 인터페이스를 통해 클래스 간의 계약(Contract)을 정의하는 방법입니다. 인터페이스는 메서드 시그니처만을 포함하며, 이를 구현하는 클래스는 해당 메서드의 구체적인 구현을 제공합니다. 이를 통해 구현체의 변경에 영향을 받지 않고, 유연하고 확장 가능한 코드를 작성할 수 있습니다.예시:/*Person 인터페이스를 정의하고, 이를 구현한 Student와 Teacher 클래스를 통해 다형성(polymorphism)을 실현합니다. main 메서드에서 Person 타입의 변수를 사용함으로써 구현체에 의존하지 않.. 2024. 11. 29.
기존 채팅 시스템에서의 WebSocket(웹소켓) 프로토콜의 STOMP 보안 문제점과 인증 레이어 설계 웹소켓은 기본적으로 보안이 없는 프로토콜입니다. 웹소켓은 클라이언트와 서버 간의 지속적인 연결을 제공하지만, HTTP와 달리 본래 인증이나 권한 부여 기능을 내장하고 있지 않습니다. 그로 인해, 웹소켓 연결은 기본적으로 열린 연결로, 특별한 보안 메커니즘이 없으면 누구든지 해당 채널에 접근하고 메시지를 보낼 수 있습니다. 웹소켓에서 보안 문제가 발생할 수 있는 이유:인증 부재: 웹소켓은 클라이언트가 연결을 시작할 때 서버로부터 인증을 받지 않기 때문에, 누구든지 연결할 수 있고 메시지를 주고받을 수 있습니다.민감한 데이터 노출: 인증 없이 메시지를 전송하게 되면 중요한 정보가 쉽게 노출될 수 있습니다. 예를 들어, 민감한 사용자 데이터나 대화 내용이 외부 공격자에게 노출될 위험이 있습니다.  Servic.. 2024. 11. 29.
[Spring] Swagger 스프링 3.x버전 적용 접속 방법 http://localhost:8080/swagger-ui/index.html config에 SwaggerConfig 생성 SwaggerConfig import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityScheme; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configurat.. 2024. 4. 15.