💣 이슈맥북 재부팅 후 오라클에서 sql을 실행하려고 하니 `the network adapter could not establish the connection` 에러 팝업이 뜨며 실행이 되지 않았다. 🔧 해결 방법터미널에 `colima start --memory 4 --arch x86_64` 입력 후 잠시 기다리니 정상적으로 동작하는 걸 확인할 수 있었다.
1. 테이블 생성1-1. 테이블 명명 규칙테이블명, 컬럼명은 반드시 문자로 최대 30자까지 작성A-Z, a-z, 0-9, $, #만으로 구성동일한 사용자가 소유한 다른 객체의 이름과 중복 불가오라클 서버의 예약어 사용 불가 1-2. 데이터 타입 1-3. SQL 명령어 종류데이터 검색 및 조회 SELECT데이터 조작어(DML, Data Manipulation Language)rollback 가능 INSERT, UPDATE, DELETE데이터 정의어(DDL, Data Definition Language)rollback 불가능 CREATE, ALTER, DROP, RENAME, TRUNCATE, COMMENTTransaction Control논리적인 작업의 단위로, DML에 의해 조작된 결과를 다루는 명령어 ..
💣 이슈서버를 실행하려고 하니 다음과 같은 에러가 발생했다. 🔧 해결 방법현재 실행되고 있는 서버를 죽이면 된다.터미널에 `lsof -i tcp:{포트}`를 입력하면 해당 포트로 실행중인 프로세스가 나온다.PID를 확인하고 다음과 같이 입력시 서버를 끊을 수 있다.`sudo kill -9 {PID}`
1. 롬복이란?코드를 간소화해 주는 라이브러리필수 코드를 간편하게 작성하도록 해준다.로깅(logging)을 통해 println() 문을 개선할 수 있다. 로깅은 프로그램의 수행 과정을 기록으로 남기는 것을 의미한다.project > src > build.gradle 파일 > dependencies 블럭에 아래 코드 두줄을 추가한다.dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' ...} 1-1. DTO 리팩토링ArticleForm() 생성자 간소화import lombok.AllArgsConstructor; // AllArgsConstructor 패키지 자동 임포트@AllAr..
💣 이슈`build.gradle 파일 > dependencies 블럭`에서 롬복 관련 코드 추가 후 빌드시 다음과 같은 에러가 발생했다.// 추가한 롬복 코드compileOnly 'org.projectlombok:lombok'annotationProcessor 'org.projectlombok:lombok'// 에러 문구Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' 🔧 해결 방법시도1) JDK21 -> JDK17 변경Project Structure에서 JDK를 17로 변경하고 재빌드를 시도했으나 해결되지 않았다. 시도2) 롬복 버전 변경JDK2..
1. 배열같은 타입의 여러 변수를 하나로 묶어서 다루는 것각 저장공간이 메모리에 연속적으로 배치되어 있다. 1-1. 배열의 선언과 생성배열 선언은 타입이나 변수 이름 뒤에 `[]`를 붙이면 된다.타입[] 변수이름;타입 변수이름[];배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이다.배열을 생성하려면 연산자 `new`와 함께 배열의 타입과 길이를 지정해야 한다.변수이름 = new 타입[길이];길이가 0인 배열도 생성할 수 있다.한번 생성하면 길이를 변경할 수 없다.더 큰 길이의 배열이 필요하다면 새로 생성하여 기존 배열의 내용을 복사해야 한다.int score[] = new int[5];int형 배열 참조변수 score를 선언한다. 데이터를 저장할 수 있는 공간은 ..
프로그램의 흐름을 바꾸는 문장들을 제어문이라고 하며, 제어문에는 조건문과 반복문이 있다. 1. 조건문조건식과 문장을 포함하는 블럭으로 구성되어 있다.조건식의 연산 결과에 따라 프로그램의 실행 흐름을 변경할 수 있다. 1-1. if문`if(조건식) { // 조건식이 참일 때 수행될 문장들 }`조건식이 참이면 블럭 안의 문장들이 수행되고, 거짓이면 if문 다음의 문장으로 넘어간다. 1-2. if-else문if-else문은 조건식이 거짓일 때 else 블럭의 문장들을 수행한다. 두개의 if문을 항상 if-else문으로 바꿀 수 있는 것은 아니고, 상반된 관계에 있을 때만 가능하다.if(input == 0) { System.out.println("0입니다.");}if(input != 0) { System.out..
1. 연산자 (operator)연산자는 연산을 수행하는 기호를 의미한다.피연산자(operand)는 연산의 대상을 의미한다.피연산자로 상수, 변수 또는 식 등을 사용할 수 있다.연산자는 연산을 수행하고 나면 항상 하나의 결과값을 반환한다.식은 연산자와 피연산자의 조합을 의미한다.식을 계산하여 결과를 얻는 것을 식을 평가한다고 한다.피연산자의 개수로 연산자를 분류하기도 한다. 단항연산자, 이항연산자, 삼항연산자 1-1. 연산자의 우선순위와 결합규칙식에 사용된 연산자가 둘 이상인 경우, 연산자의 우선순위에 의해 연산 순서가 결정된다.참고로 괄호는 연산자가 아니다. 단지 우선순위를 임의로 지정할 때 사용하는 기호일 뿐이다.1. 산술 > 비교 > 논리 > 대입. 대입이 가장 마지막에 수행된다.2. 단항 > 이항 ..
1. 변수데이터를 저장하는 공간하나의 값만 저장할 수 있다. 1.1 변수의 선언과 초기화변수에 저장할 데이터의 타입에 따라 변수 타입을 지정해야 한다.변수에 이름을 붙여 데이터를 저장한 공간을 쉽게 다룰 수 있다.공간을 구분하기 위해 변수 이름은 중복이 불가능하다.`int age`와 같이 변수 선언시, 메모리의 빈 공간에 변수 타입 `int`에 해당하는 크기의 공간이 확보되고, 앞으로 이 공간을 `age`를 이용하여 사용할 수 있다.변수에는 다른 프로그램에 의해 저장된 알수없는 값이 남아있을 수 있기 때문에 사용하기 전에 초기화해야 한다.알수없는 값을 쓰레기 값(garbage value)이라고도 한다.초기화란 변수에 처음으로 값을 저장하는 것을 의미한다.대입 연산자`=`를 사용하여 변수에 값을 저장할 수..