
연산자대입/ 산술/ 관계 연산자논리/ 조건/ 비트 연산자 연산자 연산자값을 계산하거나 비교하는 데 사용하는 것대입 연산자, 산술 연산자, 관계 연산자, 논리 연산자, 할당 연산자, 삼항 연산자, 비트 연산자 등 대입 연산자=오른쪽의 값을 왼쪽에 대입함(a = 3)오른쪽의 값을 왼쪽에 할당함(a = b) 산술 연산자더하기, 빼기, 곱하기, 나누기 같은 계산이항 연산자 : 하나의 항으로는 연산을 수행할 수 없음(예를 들어 3 + (x) , 2 * (x))단항 산술 연산자 : 하나의 항으로도 연산을 수행할 수 있음(예를 들어 ++, -- => a++ -> a = a + 1) 더하기 연산자#include using namespace std; int main() { int a = 1; a = a + 1; c..

변수 1. 변수컴퓨터가 일을 하기 위해서는 다양한 정보를 저장해야 함.값을 메모리에 저장해야 함.컴퓨터는 모든 정보를 0, 1로 저장함.숫자, 문자, 그림 모두 0, 1로 저장함. 정보를 담는 그릇변수를 선언한다(변수를 만든다)라는 것은 그릇을 제작하는 것과 같음변수의 자료형을 지정하는 것 = 그릇에 들어갈 음식을 정하는 것bt라는 이름을 가지는 변수를 만드는 것은 bt라는 이름의 그릇이 생기는 것과 같음int 형 변수를 생성했으므로 bt 안에는 정수만 담을 수 있음 2. 변수 이름 짓기변수명은 A~Z, a~z, 0~9, _(언더바)로 명명함변수명은 숫자로 시작하지 못함 (예를 들어, 2apple(x) apple2(o))변수명은 _(언더바)로 시작하는 것은 가능함(예를 들어, _apple(o), ..

컴파일(compile)컴퓨터가 소스코드를 이해하려면 0, 1로 구성되도록 변환해야 함컴파일을 거치면 소스코드 -> 기계어로 변환됨목적 파일(object file): 기계어로 변경된 파일확장자: .cpp -로 변환됨 Hello World 출력하기#include // 입출력 기능을 포함한다.using namespace std; // #include 여기에 있는 내용을 사용할 거다. int main() { cout 컴파일(문법적 오류가 있는지 없는지 확인 후 실행) return 0; // 마침표} 실행결과(.exe) #include자주 사용하는 명령어를 미리 만들어서 모아둠 실행 파일(execution file)기계어로 작성된 목적 파일이 연결과정을 거침연결과정이란 헤더 파일과 소스 코드를 연결하는 ..

C++미국 벨 연구소 비야네스트롭스트룹이 1983년에 발표한 프로그래밍 언어절차 지향적 언어(프로그램 실행 순서 중시) - 구조화 프로그래밍 - 모듈식 설계 개념 지원(객체 지향 지원) 서버 개발, 게임 개발 분야에서 주로 쓰이는 언어카카오톡 등 성능이 중요한 응용 프로그램에 주로 사용됨 toolVisual Studio 2022 설치 이미 설치되어 있기 때문에 그대로 사용하거나 업그레이드해서 사용하면 된다. 업그레이드 해서 사용할 경우 구글에서 Visual Studio를 검색하면 이 링크에 들어가면 아래와 같이 페이지가 뜬다. 여기서 커뮤니티의 무료 다운로드를 누르면 다운로드가 된다. 다운로드 한 프로그램을 실행시키면 이전 버전이 설치되어 있는 경우 아래와 같이 업그..

Mustache거의 로직이 없는 템플릿 엔진 다양한 프로그래밍 언어에서 사용할 수 있으며, 간단하고 유지보수가 용이한 템플릿을 만드는 데에 유용 Spring Boot와 Mustache를 결합함으로써개발자는 백엔드 로직과 프론트엔드 표현을 분리하여 더 효율적이고 관리하기 쉬운 웹 어플리케이션을 구축할 수 있습니다. Mustache의 주요 특징로직을 최소화한 템플릿(Logic-less templates): Mustache 템플릿은 복잡한 로직을 최소화하여, 템플릿 내에서 간단한 조건문과 반복문을 지원합니다. 이는 데이터를 표시하는 데에 집중하도록 설계되었습니다.예시 코드{{#users}} {{name}} 님이 로그인했습니다.{{/users}}{{^users}} 로그인한 사용자가 없습니다.{{/users..
템플릿 엔진 (Template Engine) 정적 파일(예: HTML, XML 등)을 동적으로 변환할 수 있는 도구 서버에서 데이터를 받아서 동적인 콘텐츠를 생성하기 위해 템플릿 파일에 변수나 표현식을 삽입해 처리하는 역할 이를 통해 서버가 클라이언트에 동적 웹 페이지를 응답할 수 있게 됩니다. 역할동적 웹 페이지 생성: 서버에서 HTML 템플릿 파일을 가져와, 서버에서 처리된 데이터를 삽입하여 클라이언트에게 동적인 웹 페이지를 전송합니다.코드 재사용성: 여러 웹 페이지에서 동일한 구조나 디자인을 사용하는 경우, 템플릿 엔진을 사용하면 공통된 레이아웃을 쉽게 재사용할 수 있습니다. 템플릿 엔진의 종류서버사이드 템플릿 엔진(SSR): 서버에서 HTML을 렌더링하고, 데이터가 삽입된 HTML을 클라이언트에게..

Article 코드 추가 // 객체의 상태값 수정 public void update(String title, String content) { // 유효성 검사 반드시 진행해야 함. // 즉, 데이터가 엔티티에 저장되기 전에 반드시 검증 if(title == null || title.trim().isEmpty()) { throw new Exception400("제목은 null이거나 빈 문자열일 수 없습니다."); } if(content == null || content.trim().isEmpty()) { throw new Exception400("내용은 null이거나 빈 문자열일 수 없습니다."); } this.title = title; this.content = conten..

BlogService 코드 추가public Article findById(Integer id) { // Optional 는 JAVA 8에서 도입된 클래스이며, // 값이 존재할 수도 있고 없을 수도 있는 상황을 명확하게 처리하기 위해 사용된다. return postRepository.findById(id).orElseThrow(() -> new Exception400("해당 게시글이 없습니다.")); // Optional 반환 -> Optional(Article)의 orElseThrow() 사용 // 데이터가 없으면 예외 떨어짐 } Optional (Optional을 사용하여 null 처리를 안전 처리 하기 위함)값이 존재할 때: Optional 안에 값이 포함되어 있으며, 이 ..

BlogService 코드 추가 // 전체 게시글 조회 기능 public List findAll() { List articles = postRepository.findAll(); // ListCrudRepository가 findAll() 제공 return articles; } ApiUtil공통 응답 DTO 생성package com.example.demo.common;import lombok.Data;@Datapublic class ApiUtil { private Integer status;// 응답 상태 코드 저장(200, 400, 500) private String msg; // 응답 메시지 저장(성공, 실패 문자열) // 변수명은 동일하나 데이터 타입이 달라져야 할 때 -> 제네릭 클래스 설계..

DTO (Data Transfer Object)는 데이터 전송을 위한 객체로, 주로 계층 간 데이터 교환을 목적으로 사용됩니다.예를 들어, 클라이언트에서 서버로 혹은 서비스 계층에서 프레젠테이션 계층으로 데이터를 전달할 때 사용됩니다.ArticleDTO 생성package com.example.demo._domain.blog.dto;import com.example.demo._domain.blog.entity.Article;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;@NoArgsConstructor@AllArgsConstructor@Getter// 즉, 주로 계층 간의 데이터 전송 목적으로 설계된..