그동안 어떻게 써야할지 몰라 미뤄왔던 TIL을 오늘부터 작성해보려고 한다.자바의 변수 종류에는 크게 3가지 기본형 변수, 참조형 변수, 래퍼 클래스 변수가 있다기본형 변수는 논리형 변수,문자형 변수, 정수형 변수, 실수형 변수가 존재한다원본값이 Stack 영역에 있다.
오늘도 자바,, 내일도 자바,, if 문 if는 조건문으로 특정조건에 따라 다른 결과를 얻고 싶을 때 사용한다. 연속적인 if를 사용할시 else if를 사용하면 되며 거짓인 경우는 else로 사용한다. if는 중첩해서 사용 가능하다. ex number가 true
클래스에 대해 나름대로 정리해보려고 한다.클래스는 객체를 생성하기 위한 설계도!!클래스이 구성 멤버에는 필드,생성자,메서드가 있다.필드는 객체의 속성으로써 데이터를 저장하는 역할을 한다.객체를 생성할때 필요한 변수를 받음, 기본생성자는 자동으로 생성된다객체가 사용할수
객체의 생성 : 연산자인 ‘new’를 사용,new 연산자 뒤에는 해당 클래스의 생성자를 호출한다.객체를 생성한 경우 도트(.) 연산자를 사용해 필드 값을 사용할 경우 있다.ex classex 필드사용객체를 생성한 경우 도트(.) 연산자를 사용해 메서드 값을 사용할 경우
오버로딩은 매개변수의 개수, 타입,순서에 따라 매서드 이름이 같은 함수들이 다른 기능을 구현하도록 하는 Java의 기능이다. 즉 한개의 클래스 내에 같은 이름을 가진 매서드가 있어도 매개변수의 개수, 타입,순서에 따라 다르게 정의를 할수 있다.오버로딩의 장점메서드 이름
자바에서 상속이란 부모 클래스의 필드와 메서드를 자식 클래스에게 공유하는걸 말한다.상속을 사용하면 적은 양의 코드로 새로운 클래스를 작성할 수도 있고 공통적인 코드를 관리하여 코드의 추가와 변경이 쉬워질 수도 있다. 클래스 간의 상속을 할때는 extend를 사용한다.e
this는 객체 클래스 내부의 생성자나 매서드에서 객체의 내부 맴버(필드 매서드)에 접근하기 위해 사용된다.(privit 변수 등...)this()는 객체 클래스 내부의 자신의 생성자를 호출할때 사용된다ex this, this() 사용
저번주부터 오늘까지 했던 개인 과제를 정리해보려고 한다.필수 요구사항은 다음과 같다.Java 클래스 설계 시 필수 요구사항!메뉴 클래스는 이름, 설명 필드를 가지는 클래스로 만들어주세요.상품 클래스는 이름, 가격, 설명 필드를 가지는 클래스로 만들어주세요.상품 클래스의
이제 키오스크의 기능을 구현할 서비스 클래스와 텍스트를 모아 놓은 텍스크 클래스를 만듭니다.마지막으로 매인클래스를 완성해줍니다 개인프로젝트를 하면서 느낀점은 자바라는 언어를 사용해서 처음 만들어본 프로젝트라 아직 자바스럽지 못한 코드들이 많이 있는것 같았다. ㅠㅠ(객체
git을 사용하는 이유기능을 개발하면서 코드 변경점을 “기록”할 수 있다.문제가 생겼을 때 특정 지점으로 되돌아 가는 것이 쉽다.\->이러한 특징 때문에 git을 버전 관리 도구, 형상 관리 도구라고 한다.github를 사용하는 이유내 코드를 온라인 저장소에 백업을 할
객체는 서로 연관된 메소드,생성자와 변수를 저장한 필드가 있는 공간을 말한다 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것이다.속성과 기능을 정의하는 변수와 메

이번주에 새로 팀과제를 하게되어서 정리를 해보려고 한다.필수 요구 사항은 다음과 같다.호텔 예약 프로그램 \- 필수 요구 사항 1\. 호텔은 여러 객실, 보유 자산을 가지고 있다. 2\. 객실은 객실 당 하루에 한 사람만 예약이 가능하다.
만들어진 클래스들을 활용하여 호텔예약 시스템을 구현해보았다.추가적으로 만든 기능느낀점개인과제를 피드백 받을때 객체에 대한 정의를 조금 더 간단히하고 명확하게 정의해 불필요한 클래스를 없에는것을 요구 받았다. 사실 개인과제를 처음 시작했을때에는 진짜 무늬만 자바로 만든

스프링 JPA를 사용하려면 3가지를 만들어야 한다.첫번째로 Enitity데이터 베이스 테이블을 매핑해주는 역활을 한다. 엔티티 끼리 연관관계를 설정 할수 있다두번째로 RepositoryRepository는 인터페이스로 만들어지며 JpaRepository를 상속받아서 만

스프링 강의를 듣는중 JSON데이터를 주고 받는 방법을 알게 되었다. 그래서 또 다른 방법이 있는지 공부해보았다. 프론트엔드와 백엔드가 데이터를 주고 받을 때 우리는 JSON 데이터 형식을 많이 사용한다. ex) JSON데이터 형식위와 같이 데이터들이 key : va

스프링 강의를 계속 보던중 JPA에 관한 실습을 계속 진행하다보니 프로젝트를 재실행 할때마다 DB가 Drop되고 다시 Create되는 현상을 발견했다. 그러다보니 혹시 이미 데이터베이스에 많은 데이터가 있는데 JPA를 적용하면 큰일이 나는게 아닌가 하는 생각이 들었다

클라이언트에서 요청을 받아 서버가 결과값을 반환할때 처리과정이 비슷함에 따라 크게 Controller, Service, Repository 3개로 분리하는 것을 말한다.Controller는 클라이언트의 요청을 받는역활을 합니다.ex) Controller 예시@Contr
오늘은 개인과제를 하면서 생긴 문제를 해결하는 과정을 설명해 보려고 한다. 다음과 같이 게시판의 내용을 삭제하기 위해서 @PathVariabl로 게시판의 아이디 값을 받고 @RequestBody에 password 값을 받아와 패스워드가 일치하면 삭제할수 있게 코드를

구현하고자 하는 서비스의 전체적인 흐름을 파악하고 필요한 기능을 설계할 수 있습니다.(Use Case Diagram, API 명세서, ERD를 작성할 수 있습니다.)Spring Boot를 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포

인증은 해당 유저가 실제 유저인지 인증하는 개념이며 실제 그 유저가 맞는지를 확인하는 절차 입니다.인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념이다. 예를들어 권한 같은 것들을 들 수 있다.어플리케이션에서 인증과 인과를 하는 방식중에 하나로 J

서버에서 다른서버로 요청을 보내는 기능!RestTemplate를 사용하기 위해서는 사용하는 위치에 RestTemplate를 주입받아야한다.fromUriString에 url의 main주소를 입력path에 나머지 주소들 입력queryParam에 ?뒤에 들어갈 파라미터들 입

Validation이란 자바에서 데이터를 검증하기 위한 어노테이션이다.Validation을 사용하기 위해 gradle에 추가해야합니다.ex)Validation 예시

휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다.예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가
스택(Stack)은 맨 마지막 위치(top)에서만 자료를 추가,삭제, 꺼내올 수 있음(Last In First Out)큐(Queue)는 맨 앞(front) 에서 자료를 꺼내거나 삭제하고, 맨 뒤(rear)에서 자료를 추가 함(Fist In First Out )push
mkdir name : 새로운 디렉토리 생성mkdir -p name.name.name : 새로운 디렉토리 연속으로 생성 touch name.형식 : 새로운 빈 파일 생성cd 디랙토리명 : 디렉토리로 들어감cd ../ : 전으로돌아감(부모디렉토리로 이동)cd /디렉토리명

기술적인 문제나 공통적인 관심사 처리(공통 로그 처리등의 기술지원 @Bean)문제 발생시 해당 위치를 정확하게 파악 하기 쉽다.클레스에 @Configuration 설정후 매서드에 @Bean 등록(@Configuration이라고 하면 설정파일을 만들기 위한 애노테이션 o

인증 인가 Authentication(인증) : 로그인 등과 같이, 실제 그 유저가 맞는지를 확인하는 것 Authorization(인가) : 해당 유저가 접근이 가능한지 허가를 확인하는 것 웹에서의 인증 인가 일반적으로 서버와 클라이언트는 떨어져 있고 HTTP라

회원가입, 로그인을 구현.인증/인가를 이해하고 JWT를 활용하여 할일 및 댓글을 처리.JPA 연관관계를 이해하고 회원과 할일 그리고 댓글을 구현.할일을 완료처리하며 상태를 관리. 🆕 회원 가입 APIusername, password를 Client에서 전달받기usern
1.회원가입, 로그인을 구현, 간편로그인 구현 (OAuth2 + JWT)2.인증/인가를 이해하고 JWT를 활용하여 계시물 등록 수정 삭제.3.JPA를 이용한 데이터베이스 다루기 사용자 인증 기능회원가입 기능새로운 사용자가 ID와 비밀번호의 형태로 서비스에 가입가능.밀번
강용수(팀장) : 프로필, 게시글&댓글 좋아요장규빈(팀원) : 로그인&회원가입지현구(팀원) : 게시글 CRUD장하람(팀원) :댓글 CRUD이번 프로젝트에서 로그인 및 회원가입 역활을 맡게 되었다. 사실 작업량이 제일 많고 힘든걸 알지만 로그인을 한번 구현해보면 앞으로
구글 간편 로그인 인증 구글 간편인증을 이용하려면 Google Cloud에 가입해야 합니다. 링크 : https://cloud.google.com/apis?hl=ko
노션 : https://teamsparta.notion.site/1-72eb648b25ee4e409fead6f0efbaa2fc깃허브 : https://github.com/nbcamp-pjs/weekly-sportsApi 문서 : https:/

먼저 카카오 developers에 가입해 준다.애플리케이션 추가 버튼을 누릅니다.앱등록시 앱키가 생성된다이용할 플랫폼에 설정을 해준다.프로젝트에 웹플렛폼을 사용하였기에 웹 도메인 설정을 해줬다.카카오 로그인에서 리다이랙트 url을 설정해준다.카카오 로그인을 활성화 해준

자바 8 이상부터 지원이 가능한 테스트 기반의 프레임워크이다.@Test : 테스트임을 선언 @ParameterizedTest : 매개변수를 받는 테스트 작성@RepeatedTest : 반복되는 테스트 작성@DisplayName : 테스트 메소드의 이름 선언@Befor

공통적인 관심사를 모듈화 하는 방식으로 코드 중복을 줄이고 유지 보수성을 향상하는데 도움을 줌. 공통 관심사를 Aspect로 정의하고 Aspect를 적용할 메소드나 클래스에 Advice를 적용.주요 용어 이해하기Aspect : 공통적인 기능들을 모듈화 한것을 의미.T

build.gradle 파일설정2.실행그레이들 탭에 Tasks -> verification -> jacocoTestReport 더블 클릭 -> jacoco/jacocoHtml/index.html 클릭

Controller 를 테스트 할 수 있어요.Service 를 테스트 할 수 있어요.Repository 를 테스트 할 수 있어요.Mockito 를 사용해서 테스트용 객체를 만들 수 있어요.profile 을 설정해서 구현해주세요.Mockito 를 적용하여 레이어간 의존성

팀 소개 프로젝트 명 : 제목은 쓰레드로 하겠습니다. 근데 이제 깃허브를 곁들인 서비스 명 : 오코완 (TCC) 프로젝트 소개 : 오늘의 코딩 완료 - 개발 관련 이야기 겸 오늘의 코딩 공부를 공유하는 SNS 입니다. 깃허브 레포 : 링크 필수 구현 기능 [ ]

@RestControllerAdvice는 여러 컨트롤러에 대해 전역적으로 ExceptionHandler를 적용해준다. 하나의 클래스로 모든 컨트롤러에 대해 전역적으로 예외 처리가 가능함직접 정의한 에러 응답을 일관성있게 클라이언트에게 내려줄 수 있음별도의 try-cat

Cron을 사용하여 일정한 시간 간격으로 반복적인 작업을 수행.사용 방법 : @Scheduled(cron = "\* \* \* \* \* \*")첫번째 부터 초(0-59) 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)

Security 설정후 h2-console이 실행안됨

링크 : https://github.com/lycoris62/today-code-completeB-1조팀명 : 비전공자인 내가 SSS급 개발자가 된 건에 대하여팀원 : 김재윤(팀장), 유동근, 장규빈, 황규정 TDD 도입하여 진행하였고, Postman으로 값을
이번 팀 프로젝트에 깃허브 로그인을 사용해 설정 과정을 정리해보려고 한다.깃허브 로그인후 settings -> Developer settings로 들어가 Github 앱을 만들어준다.앱 설정을 해준다\*여기서 callback URL이 로그인후 이동시켜줄 URL이다. 이

JDBC 로 직접 SQL을 작성했을때의 여러가지 문제가 발생하여 생긴 SQL Mapper로는 크게 JDBCTemplate과 MyBatis가 있다.쿼리 수행 결과와 객채 필드 매핑RowMapper 로 응답필드 매핑코드 재사용Connection, Statement, Res

테이블에서 레코드 전체 목록을 조회 -> List<?> 객체가 리턴기본키 필드 값이 id인 레코드를 조회 -> Optional<?> 타입의 객체가 리턴테이블에 저장 -> 객체의 id(기본키) 속성값이 0이면 INSERT / 0이 아니면 UPDATE객체 목록을

단일키의 경우, PK가 1개 있는 경우를 말하며, 해당 키 값이 단일키가 된다.=> 해당 값은 데이터를 구분할 수 있는 식별자가 된다.복합키의 경우, PK 없이 FK 2개 이상으로 있는 경우를 말하며, 해당 키의 묶음이 복합키가 된다.=> 해당 값은 데이터를 구분할 수

페이지 반환 타입의 경우, 3가지가 있다게시판 형태의 페이징에서 사용된다.전체 요소 갯수도 함께 조회한다. (totalElements)더보기 형태의 페이징에서 사용된다.전체 요소 갯수 대신 offset 필드로 조회할 수 있다.따라서 count 쿼리가 발생되지 않고 li

Entity 의 매핑정보를 활용하여 쿼리에 적합하도록 쿼리 전용 클래스(Q클래스)로 재구성해주는 기술여기에 JPAQueryFactory 을 통한 Q클래스를 활용할 수 있는 기능들을 제공한다.재구성한 Q클래스를 통해 문자열이 아닌 객체 또는 함수로 쿼리를 작성하고 실행하

이 어노테이션을 엔티티에 적용하게 되면 Insert 쿼리를 날릴 때 null 인 값은 제외하고 쿼리문이 만들어진다.이 어노테이션을 엔티티에 적용하게 되면 Update 쿼리를 날릴 때 null인 값은 제외하고 쿼리문이 만들어진다.

오늘 과제를 하던중 구현사항에 Service를 interface로 바꾼후 ServiceImpl에 정의하라는 내용이 있었다. 처음 봤을때는 왜 굳이 이런식으로 구조를 짜야하지 라는 의문이 들었다. 그래서 그 이유를 한번 찾아보았다.이론상으로 인터페이스와 구현체가 나눠져있

DB의 data에 접근하기 위한 객체이다. DB에 접근하기 위한 로직을 분리하기 위해 사용한다.직접 DB에 접근하여 data를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다.MVC 패턴의 Model에서 이와 같은 일을 수행한다. DTO는 계층 간(Contro

사용자 관리 기능 로그인 / 회원가입 기능 사용자 정보 수정 및 삭제 기능보드 관리 기능 보드 생성 보드 수정보드 이름배경 색상설명 보드 삭제생성한 사용자만 삭제를 할 수 있습니다. 보드 초대특정 사용자들을 해당 보드에 초대시켜 협업을 할 수 있어야 합니다.컬럼 관리

ReflectionTestUtils란 Spring Test Context 프레임워크의 일부로 단위테스트에서 사용되는 리플렉션 기반 유틸리티 메서드의 모음이며, 비공개 필드를 설정하고 비공개 메서드를 호출하고 의존성을 주입하기 위한 도구이다.ReflectionTestUt

@WebMvcTest 단위 테스트를 진행하던 도중 void타입의 컨트롤러에서 에러를 발생시킬때 사용하였다.

https://github.com/kodoyoon/princess_group업로드중..https://teamsparta.notion.site/1c09318a5bf24978af47310865dbebecFeat : 새로운 기능을 추가하는 경우Fix : 버

한 줄 정리 : 기프티콘 계의 크림! 기프티콘 거래 사이트내용 : 기프티콘을 실시간 거래로 구매 및 판매를 할 수 있는 사이트 입니다. 기프티콘은 상품이 균일하고, 상한가가 정해져 있으며, 구매자와 판매자가 N대 M으로 거래를 진행할 수 있다.차차 내용을 업로드 해보겠

workflows안에 yml 파일 작성중 secrets가 작동이 안됨을 발견fork한 레포지토리가 아닌 메인 레포지토리로 다시 클론후 PRfork 레포지토리에서는 secrets 가 작동하지 않음.CodeDeploy 배포중 deploy.sh 를 찾지 못함deploy.s

codedeploy로 script실행중 배포시 .bashrc 안에 있는 환경 변수를 가져오지 못함custom.env 파일을 따로 만들어서 읽어오게 만든후 jar파일 실행IAM 계정 생성(codedeploy 권한 및 s3 권한 추가)→ 엑세스키와 시크릿키 깃허브 저장IA

AWS 설정 IAM 권한 만들기 S3 Access Policy ECR Access Policy CodeDeploy Auto Scaling Policy IAM Role 만들기 [Auto Scaling Role](https://www