IT 200

Lombok (Gradle)

- Java 프로그래밍 언어에서 코드의 보일러플레이트( 프로그램이나 코드에서 반복적으로 나타나는 고정된 구조나 코드 ex: getter,setter, 데베접근, API호출 등 )를 줄여주는 라이브러리- getter, setter, 생성자, toString, equals, hashCode 메서드를 자동으로 생성해주어, 코드의 가독성과 유지보수성을 높여준다- Lombok을 사용하면 코드가 더 간결해지고, 개발자가 실제 로직에 더 집중할 수 있다주요 어노테이션@Getter: 해당 필드에 대한 getter 메서드를 생성한다@Setter: 해당 필드에 대한 setter 메서드를 생성한다@ToString: 객체의 문자열 표현을 자동으로 생성한다@EqualsAndHashCode: equals() 및 hashCode(..

IT/JAVA 2024.09.30

for-each

Java의 for-each 구문- 컬렉션이나 배열에 있는 모든 요소를 순차적으로 반복할 때 사용된다- 이 구문은 **향상된 for문(enhanced for loop)** 라고도 부른다for (타입 변수 : 배열이나 컬렉션) { // 반복할 코드} - "변수"  : - 배열이나 컬렉션에서 각 요소를 담을 변수- 각 반복마다 변수에 배열에서 하나씩 순차적으로 요소가 저장된다- "배열이나 컬렉션  :- 반복 대상이 되는 배열 또는 컬렉션- 이 배열이나 컬렉션에 있는 요소들이 반복문을 통해 하나씩 "변수"에 할당된다String[] items = {"Apple", "Banana", "Cherry"};for (String item : items) { System.out.println(item);} - 간..

IT/JAVA 2024.09.30

Gson(Maven)

- Google에서 개발한 Java 라이브러리로, Java 객체와 JSON(JavaScript Object Notation) 간의 변환을 쉽게 할 수 있도록 한다- Gson을 사용하면 Java 객체를 JSON 문자열로 직렬화(Serialization)하고, JSON 문자열을 Java 객체로 역직렬화(Deserialization)하는 작업을 간단하게 수행할 수 있다   - Apache Software Foundation에서 개발한 자바 프로젝트 관리 자동화 툴 - Maven은 Spring 프로젝트에 국한되지 않고 모든 종류의 자바 프로젝트에 사용될 수 있는 범용적인 도구로 설계되었다- Java를 사용하는 모든 프로젝트에서의 빌드, 의존성 관리, 문서화를 간소화하고 표준화하는 데 초점을 맞추고 있기 때문에 ..

IT/JAVA 2024.09.27

Java API - util package (1)

class - 날짜 처리 기능을 제공하는 클래스  Calendar cal = Calendar.getInstance();- Calendar 클래스 객체 생성  ->  싱글톤 객체이다- 컴퓨터 시각을 멤버변수로 복사한다import java.util.Calendar;public class Ex01_날짜출력 { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); int yy = cal.get(Calendar.YEAR); int mm = cal.get(Calendar.MONTH) + 1; // Java에서 월은 0부터 시작 int dd = cal.ge..

IT/JAVA 2024.09.26

Java API - Lang package java.lang

- 자바 프로그래머에게 제공되는 기본 기능의 모음 - 패키지 단위로 구성되어 있으며 라이브러리 형태로 압축되어 JAVA언어에 내장되어 있다. - 자바 언어를 구성하는데 필요한 가장 필수적이고 기본적인 클래스들을 포함하는 패키지. - 이 패키지의 모든 클래스는 자동으로 import 되므로 별도의 import 구문이 필요 없다.   1) Wrapper Class- 기본 데이터 타입에 대응되는 클래스들. - 주요 기능: 문자열을 실 데이터 타입 변수로 변환- 기본 자료형의 변수와 완벽히 호환되기 때문에 문자열을 실 값으로 변환하는 기능 외에는 큰 의미가 없다.- 각 데이터 타입에 맞는 Wrapper Class 안에 static 메서드로 정의되어 있다. ▼ 문자열을 기본 데이터 타입으로 변환      ( Cha..

IT/JAVA 2024.09.26

패키지와 라이브러리

ex)  프로젝트      └─src          ├─ App.java          └─kr              └─hossam                  ├─ Protoss.java                  │                  └─unit                      ├─ Dragun.java                      └─ Zilot.java    - src 폴더의 하위폴더- 관련 클래스 및 인터페이스 집합을 구성하는 패키지에 포함된 클래스는 어떤 패키지에 속해 있는지 명시해야 한다Protoss.java -->>package kr.hossam;  import- 클래스 정의 전 다른 패키지 안의 클래스를 참조하겠다는 선언문을 명시하면 클래스 이름만으..

IT/JAVA 2024.09.25

예외처리

- 프로그램적으로 에러가 아니더라도 로직상 개발자가 일부러 에러를 내서 로그에 기록하고 싶은 상황이 올 수 있다.- 예외처리를 분산하여 어디에서 에러가 난 것인지 원인을 보다 쉽게 파악할 수 있다.- 에러에 대한 처리는 웹 보안에 있어서 매우 중요하다. [ sysntax error ]컴파일 불가능한 상태로,  실행이 안된다 [ runtime error ]   실행중 발생하는 에러문법적으로 잘못된건 없어     컴파일은 되지만     실행은 안된다try ->  에러  ->  catch   e에 담김   ->   finally필요없으면 finally 생략 가능일부러 에러를 내는 것이므로, 프로그램적으로 문제가 있는 것이 아니여서   프로그램이 뻗진 않는다 /** * 1) 파일 복사를 수행하는 기능에서 하드디..

IT/JAVA 2024.09.25

static

- static  :  정적 멤버변수 --> 현재 클래스에 대한 모든 객체가 공유하는 값 - static은 객체가 생성되지 않더라도 존재하는 값 - static 메서드는 객체가 생성되지 않더라도 활성화 돼있는 기능 - static 메서드에서는 일반 변수는 접근 불가∵ static 기능이 활성화된 시점에는 객체가 생성돼있지 않을 수도 있기 때문에 일반 기능이 반드시 존재한다는 보장이 없다        - 특정 객체에 속해 있는 형태가 아니므로 객체 생성 전에도 클래스 이름을 통해 사용 가능 - 일반 클래스의 경우 객체 생성에 아무런 제약이 없기 때문에 각각의 메서드를 호출할 때마다 새로운 객체를 생성할 수 있다  ->  메모리 낭비 - 클래스에 멤버변수가 없다면 객체를 여러개 만들 필요 없다 - this ..

IT/JAVA 2024.09.24

인터페이스

- 추상메서드만을 정의하고 있는 특수한 형태의 클래스- 인터페이스 안에 포함되는 메서드는 모두 추상메서드뿐이므로 abstract 키워드를 생략할 수 있다- 추상 메서드(본문이 없는 메서드)의 모음이다. 이는 클래스가 제공해야 하는 메서드를 정의하는 청사진 역할을 한다 - implements 키워드를 사용하여 상속 받는다. - 인터페이스는 다중 상속이 가능하다.  -->  다형성- 클래스와 인터페이스를 함께 상속할 경우 클래스 상속구문 뒤에 인터페이스 상속구문을 명시한다public class Monster extends Unit implemets IMove, IFight {} - 인터페이스를 상속받은 클래스는 인터페이스에 선언된 모든 메서드에 대해 구체적인 구현을 제공해야 한다▽ 예)/** * 게임 중 캐..

IT/JAVA 2024.09.24

VS Code Extension

Markdown All in One- Yu Zhang- 문법강조, 미리보기 기능 지원 Markdown PDF- yzane- PDF 파일 변환 Markdown Preview Github Styling- Matt Beirner- Github 스타일의 미리보기 지원 Korean Language Pack for Visual Studio Code- 한국어 세팅 Auto Close Tag- 시작태그를 작성하면 종료태그를 자동으로 추가해준다 ( 요즘은 자동으로 있는 기능 ) Auto Rename Tag- 시작태그 수정하면 종료태그도 자동으로 수정해준다 Color Highlight- 색상 코드 값을 실제 색상으로 강조한다 Highlight Matching Tag- 선택한 태그와 함께 반대쪽 태그를 색상으로 강조한다 L..

IT/VS Code 2024.09.18

overflow

overflow (오버플로우) 현상 - 데이터 타입이 저장할 수 있는 범위를 초과하는 값을 계산하거나 저장할 때 발생하는 문제- 예를 들어, 정수형 변수는 정해진 비트 수만큼의 값을 저장할 수 있는데, 그 범위를 넘어서면 값이 잘못되거나 예기치 않은 결과가 발생한다- 예를 들어, 8비트 정수형 변수는 -128에서 127까지의 값을 저장할 수 있다.만약 이 범위를 넘어서는 값을 저장하려고 하면 오버플로우가 발생한다.예를 들어, 127에 1을 더하면 결과가 -128로 돌아가게 된다.이는 8비트 정수의 비트가 순환하기 때문이다- 다른 예로, 32비트 정수형에서는 약 -21억에서 21억까지의 값을 저장할 수 있다.이 범위를 초과하면 오버플로우가 발생하고, 결과가 예기치 않게 변할 수 있다.오버플로우는 다음과 같..

IT/IT 2024.09.13

입출력

● 입력 ★ ★ 문자열과 숫자를 하나의 프로그램에서 입력 받아야 하는 경우 *문자* > *숫자*  순서로 입력 받아야 한다!!! - 숫자를 읽은 후 nextLine()을 호출하면 예상치 못한 동작이 발생할 수 있다- 이는 숫자를 읽은 후 남아 있는 개행 문자(\n)를 nextLine()이 읽기 때문이다 => 숫자 뒤에 문자열을 읽을 때는 nextLine()을 호출해 개행 문자를 처리해야 한다import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 숫자 입력 System.ou..

IT/JAVA 2024.09.10

가상요소

:before요소 내용 앞쪽에 새 컨텐츠 추가:after요소 내용 끝에 새 컨텐츠 추가:selection마우스 드래그로 선택한 텍스트 컨텐츠 영역 선택:marker목록 아이템 앞에 붙는 마커 선택:first-letter현재 웹 브라우저에 보이는 상태를 기준으로 요소의 텍스트 컨텐츠 첫 글자 선택:first-line현재 웹 브라우저에 보이는 상태를 기준으로  요소의 텍스트 컨텐츠 첫 줄 내용 선택

IT/HTML, CSS 2024.09.08

모듈

● ES5 ex 1)MyModule1.js ▼function helloWorld() { console.log("Hello World");}module.exports = helloWolrd;JS ▽  const my = require( './MyModule1' );my();출력결과 ▽Hello World ≫ ≫ ≫module.exports = ~~~;require();( 파일 확장자 생략 가능 )( 동일경로여도 './' 생략불가 )  ex 2)MyModule2.js ▼module.exports.name = '노드';module.exports.property = { id: 'node.js', type: 'javascript' };module.exports.say = function () { consol..

IT/JavaScript 2024.09.07

AJAX

● AJAX - Asynchronous Javascript And Xml- JavaScript 와 XML 형식을 이용한 비동기적 정보 교환 기법- 이름에 XML이 포함되어있긴 하지만 요즘은 XML을 잘 사용하지 않고 대부분 JSON 형식을 다룬다 - 브라우저의 XMLHttpRequest를 이용해 전체 페이지를 새로 가져오지 않고 페이지 일부만을 변경할 수 있도록 JS 를 실행해 서버에 데이터만을 별도로 요청하는 기법 - 비동기 JS로 XML을 처리하는 기법- 특정 프로그램이 아니라 JS의 기법- XML보다 JSON이 용량이 적어 대체됐다   - JS 라이브러리 중 하나- JS를 통해 서버에 request, response 한다- JS를 통해 클라이언트, 서버 간의 통신을 한다- JS 를 통해 비동기적으로..

IT/JavaScript 2024.09.05