프로그래밍 언어컴퓨터 프로그램(애플리케이션)을 만드는데 사용실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)모던 프로그래밍 언어(객체지향 +함수형)계속 진화하는 언어.배우기 쉬운 객체지향 언어(프로그래밍 언어)자동 메모리 관리- 가비지 컬렉터(GC)가 알아
변수 - 하나의 값을 저장하기 위한 메모리 공간기본형 8개정수타입 - int, byte, short, long. 문자타입 - chat 실수타입 - float, double논리형 - boolean (true참/false 거짓)변수를 선언할 때에는 가장 적합한 것을 골라
변수(variable) 하나의 값을 저장하기 위한 공간상수(constant) 한 번만 값을 저장 가능한 변수상수를 선언하는 방법은 변수 선언과 같다. 앞에 final을 적어주면 된다.ex) final int MAX =100; // MAX는 상수리터럴(literal) -
int x = 10, y = 20;int tmp; // 빈 컵 역할tmp = x; // x의 값을 tmp에 저장x = y; // y의 값을 x에 저장y = tmp; // tmp의 값을 y에 저장
기본형(Primitive type) -오직 8개(boolean, char, byte, short, int, long, float, double) -실제 값을 저장 참조형(Reference type) -기본형을 제외한 나머지 (String, System 등) -메모리
실수의 자리수 조절불가 - 소수점 n자리만 출력하려면?10진수로만 출력된다. - 8진수, 16진수로 출력하려면?System.out.printf(“%.2f”, 10.0/3);//3.33로 출력됨.System.out.printf(“%d”, 0x1A); // 26(10진수)
물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것.객체는 속성과 동작으로 구성되어 있다.속성(필드), 동작(메소드)객체를 만들고 이를 조립해 완성된 프로그램을 만드는 기법.현실 세계의 객체를 소프트웨어 객체로 설계
필드(Field)는 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳이다.필드 = 클래스 멤버 변수 (되도록 필드라고 부르는게 좋다.)초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값으로 설정된다.클래스 중괄호 {}블
생성자는 new 연산자로 호출되는 중괄호{} 블록이다.객체 생성 시 초기화를 담당하며, 모든 클래스에 반드시 하나 이상 존재해야 한다.때문에 클래스 내부에 선언을 생략하면 기본 생성자가 자동으로 추가된다.그러나 클래스에 명시적으로 선언한 생성자가 1개라도 있으면 컴파일
6-4메소드 메소드는 객체의 동작에 해당하는 중괄호 {} 블록을 말한다. 중괄호 블록 이름이 메소드 이름이며, 메소드를 호출하면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행된다. 메소드 선언은 선언부와 실행 블록으로 구성된다. 메소드 선언 선언부(리턴타입, 메
6-5 인스턴스 멤버와 정적 멤버 인스턴스 멤버 - 객체마다 가지고 있는 멤버 정적 멤버 - 클래스에 위치시키고 객체들이 공유하는 멤버 인스턴스 멤버와 this 인스턴스 멤버란 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드를 말한다. 인스턴스 필드와 메소
public 접근 제한자 : 외부 클래스가 자유롭게 사용할 수 있도록 한다.protected 접근 제한자 : 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다.private 접근 제한자 : 개인적인 것이라 외부에서 사용될 수 없도록 한다.default 접근 제
다형성 : 사용 방법은 동일하지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 성질이다.프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것이다. 자식은 부모 타입으로 자동 타입 변환이 가능하다.참조 변수의 == 연산은 참조 번지가 같을 경우 true를
\*참고 - https://www.youtube.com/watch?v=92NizoBL4uA\-> 대부분 유튜브에 나온 영상을 내가 이해하기 위해 글로 타이핑 한 것이므로 그림과 함께 자세한 내용을 알고자 한다면 유튜브를 보도록 하자.redis는 전 세계에서
mac에서 mongoDB 설치 방법은 검색하면 잘 정리된 블로그들이 많기 떄문에 어려움 없이 설치할 수 있었다. 그러나 실행하는 과정에서 'mongo'를 입력하면 아래와 같은 문구가 나오며 실행 실패를 했다.1. 해결- 먼저 아래와 같이 몽고를 재실행 한다.\->
아직 에러를 잘 해결하지 못한다. 같은 에러가 나도 같은 에러인지도 모르겠다. 그래서 공부하며 만나는 에러들을 모아보며 기록해 보려고 한다. 에러가 났을 때 검색하는게 가장 빠르겠지만 아직은 검색을 해도 잘 모겠으므로.. 차곡차곡 쌓다보면 언젠가 스스로 해결할 날이 오
H2데이터베이스 연결(인메모리)
김영한님의 스프링 입문 강의를 들으며 그동안 헷갈렸던 부분을 정확하게 알기 실습해보며 메모한 것이다.
mvc와 템플릿 엔진은 서버에서 변형을 해서 (html을 좀 바꿔서) 내려주는 방식이다. API는 JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 보통 요즘의 api방식이라고 함. (서버끼리 통신할 때 등~) 정적 컨텐츠 정적 컨텐츠 형식의 앱
참고 - 김영한님 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring 입문 - save 테스트
영한님의 자바 입문 강의가 새로 나왔다고 해서 지하철 오가는 길에 쭉 들어보고 있다. 완전 기초지만 내가 알고 있는것을 다시 정리하고 혹시 잘못 알고 있는 부분이 있다면 수정할 수 있을거란 생각과 기초지만 몰랐던 부분을 새롭게 알게될 것이란 기대가 있었다.자바 14이상
제목과 내용을 입력했는데도 서버에 제목과 내용을 입력하라는 문구가 출력됐다. 400 에러 400 에러가 발생하는 원인은 클라이언트에서 서버로 보내는 요청 데이터가 서버의 요구 사항을 충족하지 못하기 때문일 가능성이 높다. 클라이언트의 React 컴포넌트에서
파이널 프로젝트를 진행하면서 이런 에러메세지를 봤고, 왜 나오는지 찾아보고 다른 사람에게 물어도 봤지만 완전히 이해되진 않았다.고유한 키값을 사용해야했고 인덱스 번호는 고유하니 이렇게 사용한다고 하면서도 이렇게만 쓰면 안될 때도 있다 했다. 그러나 빠르게 프로젝트를 진
RDBMS(Relational Database Management System)는 데이터를 테이블(표) 형태로 저장하고, 관계를 정의하여 구조화된 데이터를 관리하는 방식이다.대표적인 RDBMS에는 MySQL, PostgreSQL, Oracle, MS-SQL 등이 있다.
정의hasText()는 Spring의 StringUtils 클래스에서 제공하는 메서드문자열이 null이 아니고, 공백("", " ")이 아닌 경우 true 반환즉, 값이 있는 경우만 쿼리에 추가하도록 설정하는 용도만약 hasText()를 사용하지 않는다면 아래와 같이
Q파일이 build/classes/java/main/에 생성되는 것이 문제인가?✅ 현재 QueryDSL의 기본 동작최신 QueryDSL(특히 5.0.0:jakarta 버전)은 기본적으로 build/classes/java/main/ 경로에 Q파일을 생성build/gene
일주일 학습 내용 요약 추상 잘못된 추상화가 야기하는 사이드 이펙트는 생각보다 크다. 그렇기 때문에 추상화를 잘 해야 한다. '적절한 추상화'는 해당 도메인 안에서 정말 중요한 핵심 개념만 남겨서 표현하는 것이다. 추상화를 잘 하기 위해서는 적절한 '이름 짓기'를 잘
먼저 락을 걸고 다른 트랜잭션의 접근을 차단하는 방식이다.충돌을 완전히 방지할 수 있지만, 대기 시간이 길어지고 동시성이 낮아지는 단점이 있다.은행 계좌 이체나 좌석 예약과 같은 충돌이 치명적인 경우에 사용한다.트랜잭션이 끝날 때 데이터가 변경되지 않았는지 검증하는 방
고속 처리: 대량의 메시지를 빠르게 처리할 수 있으며, 로그처럼 저장하여 장애 발생 시 복구할 수 있다.내결함성: 메시지를 디스크에 지속적으로 저장하여 데이터 유실 없이 복구 가능하다.수평 확장: 여러 브로커를 추가하여 높은 트래픽을 처리할 수 있다.대량 데이터 처리:
진행했던 프로젝트의 댓글 설계 구조를 살펴보자면현재 설계에서는 댓글이 특정 리뷰(review_id)에 종속되는 구조이므로, 리뷰에 대한 1 Depth(1단계)만 지원된다. 즉, 리뷰에 대한 댓글은 달 수 있지만, 대댓글(댓글에 대한 댓글)은 지원되지 않는 구조이다.
이전 프로젝트를 진행해보면서는 1뎁스의 댓글만 구현해보고 대댓글 구현은 해보지 못했다.마지막 프로젝트에서 대댓글 형식과 같은 구조를 만들었는데 정확히는 대댓글이 되는게 아니었다.면접에서'댓글 구현하셨던데 몇 뎁스까지 가능하게 했나요?'와 같은 질문을 할 줄 몰랐고'대
PostgreSQL은 MySQL처럼 AUTO_INCREMENT가 없고, 시퀀스(sequence) 객체를 사용하는 DB다.그래서 GenerationType.SEQUENCE 전략이 자연스럽고, 성능이나 트랜잭션 측면에서도 더 유리하다.JPA가 DB에 등록된 시퀀스 객체를
용도 메서드명 예시DTO → Entity toEntity()Entity → DTO from(entity: Entity)두 인자 이상 필요 of(request, team, createdBy) 도 자주 씀주로 CreateRequest / UpdateRequest 같은 요청
컨트롤러에서 리턴 타입으로 흔히 보는 ResponseEntity<T>,그냥 T만 반환하는 것과는 뭐가 다를까?ResponseEntity<T>는 Spring에서 HTTP 응답 전체를 커스터마이징할 수 있는 클래스다.T는 HTTP Body에 담을 데이터 타입상태
Kotlin + Spring Data JPA로 예배/콘티 관리 서비스를 개발 중.Conti와 Song 관계:하나의 Conti에는 여러 개의 Song이 포함됨즉, Conti 1 : N SongSong.conti를 생성자에서 바로 넣었지만,conti는 아직 영속화(pers
Spring Data JPA의 findById(id: Long)는 Optional<T> 를 반환한다.삭제된 엔티티를 조회하면 Optional.empty() 상태가 되며,이는 “Optional 객체는 있지만 내부에 값이 없다”는 의미다.Kotlin의 !! 연산자는