컴퓨터의 하드웨어 : CPU (연산장치), 메모리 (기억장치), 드라이브 (저장), 입출력장치CPU (Central Process Unit, 중앙처리장치) : 명령어를 해독하고 실행하는 장치로, 제어장치, 연산장치, 레지스터들로 구성된다.제어장치 : 중앙처리장치에서 일
변수 선언 : 해당 타입 만큼 공간을 잡아라는 프로그래머의 명령 (= 메모리 할당)int num : 변수 타입 + 변수이름num이라는 방 이름으로 int (4byte) 공간을 확보하라OS가 메모리를 할당해 준다.변수 값 대입 (할당)변수명을 짓기 위한 규칙초기화 : 변
값을 딱 한 번 할당하며 변경이 불가능한 변수키워드 final 선언이 붙음소스 코드 내에 직접 입력된 값, 변하지 않는 데이터 그 자체 (상수라고도 한다.)원시 타입과 String이 있다.정수의 리터럴은 int 타입으로 컴파일되며, 실수의 리터럴은 double 타입으로
결합 방향 : 우선 순위가 같을 경우에 연산을 진행하는 방향⭐️ 실제로 우선순위가 가장 높은 것은 괄호 : 실무에서 많이 쓰임문자열과 숫자 (정수나 실수)가 있으면, 문자열로 결합한다.전위 연산자 (prefix operator) : 먼저 증가시키고 그 결과를 객체로 반
⭐️ 실무에서는 for문을 가장 많이 쓴다.while문은 한 번도 실행되지 않을 수 있다.1~10까지의 합 구하기한 번은 실행된다.⭐️ for문 순서 기억하기구구단조건문과 같이 온다.breakcontinue : 밑의 코드는 실행하지 않고 반복문의 조건으로 바로 이동별찍
배열 선언은 메모리 할당배열 선언 시 메모리에는 배열 값의 첫번째 주소가 들어간다.배열 값들은 연속된 공간에 할당된다.배열 선언 방법첫 번째 방법두 번째 방법1) 1000개 배열 만들고 1부터 1000까지 넣기 2) 배열 안의 값들 합구하기foreach + ctrl
1\. 숫자를 입력받아서 층수에 맞게 별탑이 출력되도록 하자.2\. 1-100사이 숫자 정해서 숫자추측 게임 (10번 시도해서 맞추면 축하/못하면 실패)
if문에 속한 문장이 하나일 경우 중괄호 생략 가능하다. : 프로젝트마다 다르기는 하지만, 오류가 생길 가능성 때문에 왠만하면 생략하지 않는다.⭐️ 걸리면 break까지기본적으로 switch의 괄호 안에는 정수가 들어간다.몇 월인지 입력하면 계절을 알려주는 프로그램
클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다.클래스의 용도 : 클래스는 객체를 생성하는데 사용된다.⭐️ 객체란 .class를 메모리로 올린 것
1) 국어, 영어, 수학을 입력받는 기능을 만들고, 2) 평균이 90 이상이면 수우미양가를 출력3) GradeTest 프로그램1) 게임을 클래스로 만들기2) 객체를 생성해서 게임이 실행될 수 있도록
⭐️ 생성자 및 디폴트 생성자에 대하여 설명하시오.인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’이다.인스턴스 변수의 초기화 작업인스턴스 생성 시에 실행되어야 할 작업💡 연산자 new가 인스턴스를 생성하는 것이지, 생성자가 인스턴스를 생성하는 것이 아니다.생
문자형 2차원 배열 5행 5열을 만들과 행과 열을 입력 받아 해당 좌표의 값을 'X'로 변환해 2차원 배열을 출력하시오. 계속해서 반복 실행하도록 구현하고 행이나 열 입력 시 0미만 5이상의 수가 입력되면 프로그램을 종료하시오.객체 지향적으로 클래스 만들기
클래스의 묶음 : 비슷한 성격의 자바 클래스들을 모아 놓은 자바의 디렉토리클래스가 물리적으로 하나의 클래스파일 (.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다.클래스의 효율적인 관리 : 서로 관련된 클래스 또는 인터페이스를 묶어서 관리한다.한 패키지
접근 제어자는 멤버 또는 클래스에 사용되어, 해당한느 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다.클래스 정의 대상 : public, default인스턴스 변수와 메소드 대상 : public, protected, default, privatepu
다음을 만족하는 클래스 Employee를 작성하시오(1에서 3번까지 관련된 문제입니다).클래스 Employee(직원)은 클래스 Regular(정규직)와 Temporary(비정규직)의 상위 클래스필드: 이름, 나이, 주소, 부서, 월급 정보를 필드로 선언생성자 : 이름,
정의 :상속이란, 기존의 클래스를 재사요하여 새로운 클래스를 작성하는 것이다.장점 :재사용, 중복 제거 : 적은 양의 코드로 새로운 클래스를 작성코드를 공통적으로 관리할 수 있어 유지/보수가 편하다.조상 클래스 = 부모클래스, 상위클래스, 기반클래스자손 클래스 = 자식
자식 클래스가 부모 클래스의 상속받은 메소드를 자신의 필요에 맞추어 재정의부모 함수와 이름, return 타입, 인자는 동일하고 함수 바디만 다르다. 1) 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.2) 예외는 조상 클래스의 메서드보다 많이 선
객체들의 타입이 다르면 똑같은 메세지 (같은 이름의 함수)가 전달되더라도 서로 다른 동작을 하는 것조상 클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다.둘 다 같은 타입의 인스턴스지만 참조변수의 타입에 따라 사용할 수 있는 멤버의 개수가 달라진
클래스를 설계도에 비유하면 추상클래스는 미완성 설계도에 비유할 수 있다. 클래스가 미완성이라는 것은 멤버의 개수에 관련된 것이 아니라, 미완성 메서드 (추상 메서드)를 포함하고 있다는 의미이다.추상 메서드가 하나라도 있으면 클래스는 추상클래스가 된다.추상클래스로 인스턴
1) 주어진 배열 중에서 최솟값을 찾는다.2) 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).3) 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.4) 하나의 원소만 남을 때까지 위의 1~3 과정을 반복한다위의 알고리즘을 참고 하여 아래의 함수를
💡 인터페이스 : 표준, 강제, 클래스간 유사성인터페이스는 일종의 추상클래스이며, 추상메서드와 상수만을 포함하며 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다.키워드로 class 대신 interface를 사용한다. 접근제어자로 public, default도 사용
Static 메소드
ㅇㅇ
java.lang 패키지는 자바 프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그래서 이 클래스들은 import 없이도 사용할 수 있다.Object 클래스는 모든 클래스의 최고 조상이기 때문에 Object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다
https://velog.io/@kungsboy/숙제-정렬을-구현하여-보자삽입 정렬의 전체적인 과정은 이렇다. (오름차순을 기준으로 설명)현재 타겟이 되는 숫자와 이전 위치에 있는 원소들을 비교한다. (첫 번째 타겟은 두 번째 원소부터 시작한다.)타겟이 되는
기존의 다른 언어는 문자열을 char형의 배열로 다루었으나 자바는 String 클래스를 제공한다.String 클래스에는 문자열을 저장하기 위해서 문자형 배열 참조변수(char\[]) value를 인스턴스 변수로 정의해놓고 있다. 인스턴스 생성 시 생성자의 매개변수로 입
Sring 클래스는 인스턴스를 생성할 때 지정된 문자열을 변경할 수 없지만, StringBuffer 클래스는 변경이 가능하다. 내부적으로 문자열 편집을 위한 buffer를 가지고 있으며, 인스턴스를 생성할 때 그 크기를 지정할 수 있다.StringBuffer 클래스의
Math 클래스는 기본적인 수학계산에 유용한 메서드로 구성되어 있다. Math 클래스의 생성자는 접근 제어자가 private이기 때문에 다른 클래스에서 Math 인스턴스를 생성할 수 없다. 클래스 내에 인스턴스 변수가 하나도 없어서 인스턴스를 생성할 필요가 없기 때문이
객체지향 개념에서 모든 것은 객체로 다루어진다. 그러나 자바에서 8개의 기본형은 객체로 다루지 않는다.기본형 (primative type) 변수도 객체로 다뤄야 하는 경우가 있다. 예를 들어, 매개 변수로 객체를 요구할 때, 기본형 값이 아닌 객체로 저장해야할 때, 객
JDK1.5에서 처음 도입되었으며, 이제는 지네릭스를 모르고는 Java API 문서조차 제대로 보기 어려울 만큼 중요한 위치를 차지하고 있다.정의 : 다양한 타입의 객체들을 다루는 메서드나 컬렉션에 컴파일 시의 타입 체크 (compile-time type check)를
버전 관리 시스템 (형상 관리 도구, configuration management tool) 중 하나이다.소스코드를 효과적으로 관리할 수 있게 해주는 무료 공개 소프트웨어이다.소스코드를 여러 개발 PC와 저장소에 분산해서 저장한다. 그래서 중앙 서버에 장애가 발생해도
⭐️ SOLID의미 : 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙이다.목적 : 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하기 위함이다.SPR (Single Responsibility Principle) : 단일 책임 원칙OCP (Open Clo
HashMap은 키(key)와 값(value)을 묶어서 하나의 데이터(entry)로 저장한다. 그리고 해싱(hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다.HashMap은 키와 값을 각각 Object 타입으로 저장한다. 어떤
AWS에서 EC2 instance를 만든다. instance는 실습용이니 spot instance로 설정한다.💡 AWS를 쓰는 동안은 결제 대시보드를 자주 확인하자.인스턴스 유형 : 필요에 따라 OS, CPU, 메모리 등을 선택한다. 이번에는 ubuntu 22.04,
DI란 Dependency Injection의 줄임말로, 의존성 주입이다.Spring 프레임워크는 3가지 핵심 프로그래밍 모델을 지원하는데, 그 중 하나가 의존성 주입(DI)이다. DI란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 느슨한 결합을 하게 해
이번주는 코드를 정신없이 치면서 정신없이 시간이 날아갔다. 매일 정리도 제대로 못하고 파편적으로 블로그에 게시를 하였다. 정리할 목록들을 정리해두고 있지만, 매주 쌓여가고 있다......그래도 이번주에는 git이랑 옥신각신하며 많이 알아가게 되었다. 역시 계속 문제를
Gradle은 빌드 도구 중의 하나이다. 빌드 도구란 소프트웨어 개발에 있어 소스 코드를 실행 가능한 어플리케이션으로 만들어주는 도구이다. 빌드 과정을 자동화하여 관리하는 기능을 하기 때문에 Build Management Tool 또는 Build Automation T
Annotaiton(@)은 사전적 의미로 주석이라는 뜻이다. 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공하는 메타데이터 (데이터를 위한 데이터)라고 할 수 있다.컴파일
‘environment disparity’를 해결해 준다 : 다른 환경에서도 구동하게 할 수 있다.하나의 서버에서 각기 다른 환경의 컨테이너를 설정할 수 있고, 독립되어 있어서 모듈식 관리가 가능하다.By 2022, more than 75% of global organ
데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음이다.데이터베이스 관리 시스템 (DBMS)에 의해 제어된다.DBMS 종류 : MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Databas
다운로드 후 실행 - MySQL Connections + 버튼을 클릭새로운 Connection을 세팅한다.a. Connection Name : 적절한 이름을 넣는다.b. Hostname : EC2 인스턴스의 퍼블릭 IPv4 DNS를 입력한다.c. Password :
name : 원하는 이름Language : JavaBuild system : Gradlesrc - main - java - new - java classmain 메서드에서 출력해보기Build and run using : IntelliJ IDEARun tests usin
앞에서 java와 mysql을 연동하였다.더 나아가서 csv 파일로 저장된 데이터를 mysql에 insert를 도전하였다.이전에 서울시 병원 csv 파일로 db를 만드는 실습을 하였는데, 동일한 데이터를 이용하여 db를 만들었다.하나의 insert를 할 때는 execu
try/catch/finally 예외상황 처리는 완료되었다. 그러나 UserDao의 모든 메소드마다 복잡한 블록이 나온다.이러한 복잡한 코드의 반복은 Human Error의 가능성을 높이고, 유지/보수 또한 어렵게한다.💡 문제 해결의 핵심은 변하지 않으며 많은 곳에서
💡 API 문서: API 쓰는 법을 기술해놓은 문서, 데이터를 주고 받기 위한 방법과 규격을 제공하는 문서.commit 관련 API 문서 https://docs.github.com/en/rest/commits/commits주소를 통해 값을 넘길 때 사용한다.
(?=) (전방 탐색, looahead) : 작성한 패턴에 일치하는 영역이 존재하여도 그 값이 제외되어서 나오는 패턴= 다음에 오는 문자가 일치하는 영역에서 제외된다..split() : limit (두번째 파라미터)를 음수로 주면 모든 구분값을 나눠서 배열로 반환한다.
○ 스프링이란? 스프링은 자바 엔터프라즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크다. 프레임워크는 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API 등을 제공한다. 💡 스프링을 사용한다는 것은
"Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run"."( 스프링부트를 이용하면 단독으로 실행 가능한 상용 수준의
SpringBoot에서는 최근 MVC 보다는 API를 구현하는 쪽으로 가고 있다.MVC : Controller → Model(DB) → View : controller가 db에 데이터를 요청해서 view에 보여준다. Spring Boot Web (WebFlux) :
💡 준비사항 실습용 데이터 서버가 하나라서 deleteAll()이 들어가는 테스트 코드는 주석처리하였다. .mvn 이하, .idea 이하, target 이하, hello.iml, help.md를 제외한 나머지를 git에 올린다. (🚫에러) 서버에 올리기 전에 로컬에서 packaging 테스트, 그리고 테스트코드, 환경변수, 디렉토리 등이 로컬과 분리되...
컨테이너 기술컨테이너란?리눅스 + 어플리케이션 : java 어플리케이션을 linux 서버에 띄우는 것빌드 → 리눅스에 바로 실행하면포트번호는 디폴트로 8080인데, 이를 바꾸고 싶으면 java 실행 전에 아래 코드를 입력한다.도커를 사용하면 1개 계층 (Hypervis
어플리케이션을 실행하면 다음 위치에 있는 application.properties 설정 파일을 읽어들인다.현재 디렉터리의 /config 서브 디렉터리현재 디렉터리클래스 경로의 /config 패키지클래스 경로의 루트위에서부터 순서대로 우선 순위가 높게 설정되어 있어 여러
Lombok이란 Java 라이브러리로 반복되는 메서드 작성을 줄여주는 코드 다이어트 라이브러리이다.롬복 (Lombok)을 이용하면 보일러플레이트 코드\* (Boilerplate Code)의 절감을 도모할 수 있다. 롬복을 이용하려면 의존관계를 빌드 스크립트에 추가한다.
트랜잭션은 우리말로 '거래'라는 뜻을 갖고 있다. 실제 거래에서 네이버의 안전거래로 트랜잭션의 개념을 이해할 수 있다. 구매자가 입금을 한다.판매자는 입금을 확인 후 상품을 보낸다구매자가 상품을 확인 후 구매완료를 누른다.판매자에게 입금이 되고, 거래가 종료된다.만약,
Gradle, java 11dependencies 1\. Lombok – 코드 간결화, 로깅 기능. 2\. Spring Web – MVC 프레임워크 사용을 위해 3\. Mustache – view페이지를 머스테치 템플릿 작성 4\. Sprint
controller 패키지에 ArticleController 생성📄 ArticleControllertemplates - articles diretory - new.mustache 생성action: http request가 어디로 갈지method: post 없으면 기본
이전에 maven으로 빌드할 때는 maven을 설치하고 .jar 파일을 이용하여 이미지를 생성하였다. 그러나 gradle은 버전 문제로 강사님이 Dockerfile을 작성하고 배포 연습을 하였다. 일단 그 과정만 기록을 하겠다.테스트를 스킵해도 에러가 나서 기본 tes
ResponseEntity로 상태코드를 지정하기 위한 메서드이다. created()말고도 HttpStatus 또는 statuscode를 직접 변수로 넣는 status()도 있다.ok()는 상태코드 200으로 설정한다. 매개변수를 같이 주면 이는 body에 담기게 된다.
JwtAuthenticationFilter는 JWT 토큰으로 인증하고 SecurityContextHolder에 추가하는 필터를 설정하는 클래스이다.GenericFilterBean은 기존 필터에서 가져올 수 없는 스프링의 설정 정보를 가져올 수 있게 확장된 추상 클래스이