코드스테이츠 백엔드 43기에 합격하게 되어 어제부터 수업을 듣게 되었다! 어제 메타인지 페어 아고라스테이츠 메타인지는 내가 아는 것과 모르는 것을 정확하게 아는 것. 자기객관화를 하는 것이다. 페어는 상대방과 같이 코드를 협업해서 짜는 것을 뜻한다. 내가 상대보다
오늘의 핵심 리눅스 git java기초
오늘의 핵심 Git에 대해 알아보고 사용해보기 첫 pair 활동 > Git 이란? Git은 어제 배운 linux를 만든 사람. 리누스 토르발즈 가 만든 것으로 linux의 불편함을 깨닫고 만든 것이다. = 파일을 관리해주는 프로그램이다. Git 으로 가능한 것들
오늘 핵심 JAVA기초 변수란? 변수 타입 문자열 > 변수란? 변수는 컴퓨터에게 이 만큼의 공간이 필요하다고 선언하는 것. 그리고 사람이 보기 쉽게 이름을 붙이는 것이다. 이렇게 하면 문자형 변수 a를 쓰겠다고 선언이 된 것이다. > JAVA를 왜 쓰는가 운
오늘 핵심 JAVA 조건문 연산자 >연산자 연산자 우선순위 System.out.print() = 줄 바꿈 없음 System.out.println() = 줄 바꿈 있음(line) System.out.printf() = formatted의 약자. format과 사용
오늘 핵심자바 배열배열이란?우리가 변수를 선언할 때 int score = 100;int score1 = 90; 이런식으로 선언을 해준다.그런데 이건 양이 적지만 이런게 많다면? 100개 정도 선언을 해줘야 한다면? 굉장히 귀찮은 일 일 것이다. 그리고 나중에 변수를 수
오늘 핵심객체지향 프로그래밍 기초class객체필드메서드객체지향 프로그래밍이란?Object - Oriented Programming System -> OOPs객체지향 프로그래밍 특성?객체 지향 원리를 도입한다.코드를 객체 지향적으로 설계한다. -> 코드들이 코드들의 연관
오늘의 핵심 생성자 내부 클래스 생성자(Constructor) Class가 생성될 때 가장 먼저 출력되는 것. 인스턴스 생성 할 때 변수 초기화. 이런 코드가 있을 때 인스턴스를 생성하려면 이렇게 생성을 해야한다. 그렇다면 Test class에 있는 값을 넣
Java 객체 프로그래밍 심화 > 오늘 핵심 상속 캡슐화 상속 상위 클래스와 동일한 기능을 써야 할 경우 재사용하는 것을 뜻한다. 상속은 공통된 객체를 써야 할 경우 유용하게 쓸 수 있다. 를 사용해서 쓸 수 있다. 만약 친구라는 클래스를 만들 때 이름,
오늘의 핵심 다형성 추상화 다형성 다형성은 같은 참조 변수에서 다양한 결과가 나오는 것. 지금 붕어빵 틀은 Friend 에서 가져오고 속은 GirlFriend로 채운셈이다. 이걸 객체 타입과 참조변수 타입의 불일치라고 한다. 반대로는 불가능. 참조변수의 타입
핵심 열거형 제네릭 예외 처리 컬렉션 프레임워크 열거형 (Enum) > 상수를 모아놓은 것. 여러 상수들을 보다 편리하게 선언하고 관리할 수 있게함. 상수명의 중복을 피하고, 타입에 대한 안정성을 보장. 같은 효과를 낼 수 있는 다른 코드에 반해 훨씬 더 간결
코드스테이츠를 시작한지 벌써 한달 정도가 되어가고 있다.정말 쉴 틈 없이 바쁘다...원래 배울 때가 제일 느린 법이다. 조급해하지 말고 정확하게 나가자.목표\*\*<span style="border:5px solid Keep은 만족스러운 부분, 계속 이어가면 좋을
오늘의 핵심 재귀 재귀 재귀란 자신 스스로를 호출하는 것이다. 그리고 쪼개는 것! 더 이상 쪼개지지 않을 때까지 쪼개는 것이다. 그리고 더 이상 쪼개지지 않을 때가 탈출 조건이 되겠다. 필요조건 탈출문 (return) 예로들어서 배열에 있는 값을 모두 더한다
오늘과제 제출JSON
오늘 배우는 내용 애너테이션 람다 스트림 애너테이션 애너테이션은 컴파일에 기록하는 것으로, 다른 기계에게 알려줄 때 쓰는 것이다. 여기 @Override 라고 적혀있는게 애너테이션이다. @로 시작하고, 클래스, 인터페이스, 필드, 메서드 등에 붙여서 사용할 수
오늘 stack queue stack stack은 후입선출로 나중에 들어온게 먼저 빠지는 구조다. 예시로 프링글스 감자칩을 생각하면 쉽게 이해할 수 있다. 먼저 들어간게 맨 밑에 깔리고 제일 뒤에 들어온게 위로 올라가는 구조. 그래서 stack은 넣고 나오는
오늘 Tree Graph Binary Search Tree Tree tree는 나무를 거꾸로 뒤집은 모양을 가지고 있다. Graph 자바에서 그래프는 이런 모양. 동그라미(점)를 정점이라고 표현. 선은 간선이라고 말한다. 양쪽다 화살표가 있으면 양방향 간선,
오늘 BFS DFS BFS (너비 우선 탐색)
주제 > [Java]알고리즘 - 코플릿 중 하나를 의사코드로 작성하고 문제를 푼 후 블로깅 하세요. 문제
오늘 시간복잡도 탐욕 알고리즘 완전 탐색 알고리즘 이진 탐색 알고리즘 의사 코드 작성 (pseudocode) 의사 코드란 코드를 작성할 때 어떻게 작성을 할 것인지 적어두는 것을 의미한다. 다른 말로 수도 코드, 로직 이라고도 말한다. 의사 코드를 작성하고 그것을
오늘 순열 조합 GCD 멱집합 순열과 조합 순열 : 순서를 생각하며 요소 n개의 수를 m개 선택하여 뽑는 경우의 수. 조합 : 순서를 생각하지 않고 요소 n개의 수를 m개 뽑는 경우의 수. 예시로 카드 뽑기를 들어보자. 5장의 카드 중 3장의 카드를 나열하려고
오늘 HTTP 네트워크를 만드는 기술 웹 시작하기 전 웹 애플리케이션이란? 웹 애플리케이션을 보기 전 네이티브 애플리케이션에 대해 보자. 네이티브 애플리케이션은 특정 기기에서 다운받아 사용하는 애플리케이션이다. EX ) 핸드폰에 무언가를 다운받아 설치한다. 즉 W
오늘 REST API Postman
오늘 MySQL 데이터 베이스란? HTTP를 배우면서 데이터 베이스를 같이 봤을 것이다. 그냥 데이터 베이스에서 무언가를 꺼내오는구나 정도로 이해했는데 진짜 의미는 뭘까? 데이터베이스(DB: database)는 통합하여 관리되는 데이터의 집합체를 의미한다. 이는
오늘 관계형 데이터베이스 스키마(schema) 관계형 데이터베이스 schema 스키마란 청사진과 같다.
오늘SQL 활용인텔리제이에서 MYSQL을 사용해보자.일단 MySQL에 데이터베이스를 만든다.내가 사용 할 데이터베이스는 learnsql이다.DriverManager 를 사용하면 인텔리제이와 mysql을 연결할 수 있다고 한다.getConnection 괄호 안에 있는 것
오늘 spring 프레임워크 프레임워크란? 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것. 이라고 정의한다. 한마디로 틀 이라고 생각하면 더 쉽다. 정해진 틀 안에서 정해진 규정에 맞게 사용
오늘 spring 모듈 구성 spring boot 소개
오늘 Spring Framework의 핵심개념스프링 컨테이너빈의 생명주기를 담당. (생성, 관리, 제거 등)ApplicationContext 을 스프링컨테이너 라고 하고 인터페이스로 구현이 되어 있다. (다형성 적용)02.02일 블로그(https://velog
오늘 빈 스코프 의존관계 주입방법 빈 스코프(Bean Scope) Bean definition 빈이 존재할 수 있는 범위를 의미한다. Scope |Scope|Description| |:---:|:----:| |singleton(싱글톤) | 기본값. 각 Spri
오늘 Spring AOP Spring AOP AOP란? AOP = Aspect-Oriented Programming / 즉 관점 지향 프로그래밍이라는 뜻. 지난번 2/2일 블로그에 DI와 함께 작성했었다. 그래도 한번 더 보고 넘어가자. 애플리케이션 로직은
Section 2 회고
오늘Spring MVCControllerMVC란 서블릿(Servlet) API를 기반으로 클라이언트 요청을 처리하는 모듈이다.웹 프레임워크의 한 종류.서블릿?클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일이다.그리고 우리가 sp
오늘DTODTO = Data Transfer ObjectTransfer을 봤을때 무언가를 전송하기 위한 객체. 계층간 데이터 교환을 위해 사용되는 객체다. 내가 배운 부분에서 데이터 전송이 이루어 지는 곳은클라이언트가 서버쪽으로 전송하는 요청(Request) 데이터서버
오늘 Spring 서비스 계층 서비스 로직 서비스 계층은 비스니스 로직을 작성하는 곳이다.(수정 필요) 어제 작성한 코드에는 Member, Coffee, Order 의 Controller와 Dto가 있을 것이다. MemberController 클래스에서 어떤
오늘 예외 처리 DTO 유효성 검사시 저번처럼 콘솔에 입력되는 딱딱한 에러보다 조금 더 친절한 메세지를 에러로 뜨게 해보자. @ExceptionHandler Error Response 클래스를 만들어서 클라이언트 쪽에 전달해주자. 응답이 배열로 오는 것을 확인
오늘예외 던지기 & 예외 처리
오늘 Spring Data JDBC Spring Data JDBC JDBC = Java Database Connectivity 자바 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트 데이터베이스에 저장된 데이터를 자바 코드 레벨에서 사용할 수 있게 해
오늘Spring Data JDBC 도메인 엔티티 & 테이블 설계= 비슷한 범주의 연관된 업무들을 하나로 그룹화 해놓은 그룹한마디로 폴더 같은 느낌.저번부터 만들고 있던 커피 주문 애플리케이션의 도메인 애그리거트.여기서 애그리거트는 회원, 주문, 커피 3개가 된다.애그리
오늘 페이지네이션 기능 적용
오늘JPAJava Persistence API 라는 뜻으로 java에서 사용하는 ORM(Object-Relational Mapping) 기술의 표준 사양이다.내부구조를 구면 JAP를 거쳐 Hibernat ORM을 통해 데이터의 저장, 조회 등의 작업이 이루어진다.Hib
오늘Entity 와 Entity의 연관 관계 매핑Entity와 Entity를 매핑하려면 어떻게 해야할까?JPA에서는 어떻게 하는지 알아보자.@ManyToOne 애너테이션으로 다대일 이라는 관계 명시.@JoindColumn 애너테이션으로 ORDERS 테이블에서 외래키에
오늘 Spring Data JPA Spring Data JPA Spring Data JPA REPOSITORY JDBC와 다른점 CrudRepository를 상속하지 않고, JpaRepository를 상속한다.
오늘 트랜잭션 트랜잭션 예시 카페에서 손님이 커피 2잔을 담고 결제버튼을 눌렀다. 그런데 웹 오류가 발생해 결제가 안됬지만 데이터베이스에는 커피 2잔이 담겨버리고 손님의 스탬프도 2개가 찍힌 것이다. 이렇게 되어버리면 카페 주인은 손해를 보게 된다. 또, 손님
오늘Spring TransactionAOP 방식으로 트랜잭션을 적용하기 위해 Configuration 클래스를 정의해준다.@Configuration 어노테이션은 스프링 프레임워크에서 빈(Bean)을 정의하고 구성하는 자바 설정 클래스임을 나타내는 어노테이션입니다.위 코
오늘Testing(테스팅)// 테스트 분류 사진주석으로 표시한 given - when - then이라는 용어는 BDD(Behavior Driven Development)라는 테스트 방식간단하다. @Test 애너테이션을 붙여주면된다.그리고 @DisplayName은 테스트
오늘 Hamcrest 슬라이드 테스트 Hamcrest Hamcrest는 JUnit 기반의 단위 테스트에서 사용할 수 있는 Assertion Framework이다. 사용 이유 Assertion을 위한 매쳐(Matcher)가 자연스러운 문장으로 이어지므로 가독성이
오늘MockitoTDD슬라이스 테스트를 진행 할 때 API 계층만 잘라서 테스트를 하고 싶었는데 결국 service 계층과, 데이터링크 계층까지 가야했었다.이렇게 되면 해당 계층 영역에 대한 테스트를 한게 아니라 모든 계층을 다 돌면서 테스트를 한 결과가 된다.= Te
오늘 API 문서화 API 문서화 설정 :build task 실행 전에 실행되는 task. :copyDocument task가 수행되면 index.html 파일이 src/main/resources/static/docs 에 copy 되며, copy된 index.h
오늘API 실습given(memberService) 부분에서 willReturn(new Member()); 가 되는 이유는 그 다음 로직에서 member가 쓰이지 않기 때문이다. 정확히 말하면 그 다음 로직인 mapper.memberTo~ 부분도 Mock으로 지정해줘서
오늘 애플리케이션 빌드 빌드 인텔리제이에서 빌드하기 아래 사진에서 아니면 를 눌러 실행시킨다. Spring Boot는 Gradle 빌드 툴을 이용해 애플리케이션을 빌드할 수 있는 플러인을 지원한다. 그래서 Gradle task 명령을 통해 애플리케이션을 손
벌써 section 3가 끝나버렸다...ㅠㅠ정말 한달이라는 시간이 믿기지 않게 빨리끝났다. seciton3에서는 본격적인 spring 을 배우고, 사용하는 법을 익혔다.확실히 직접 만들어보고 동작하는 모습을 보니 재미있게 배웠다.물론 많이 어려웠지만...
오늘인증/보안 기초= HTTP 요청을 SSL, TLS라는 알고리즘을 이용해 HTTP 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법.인증과 권한이란편의점에 맥주를 사러감.신분증 검사를 진행하는 것 = 인증(내가 누구인지)맥주를 살 수 있는 권한이 주어짐. = 권
오늘 Spring Security Inmemory User 인증 설정
오늘Spring Security Athentication사용자가 로그인 요청.UsernamePasswordAuthentication에서 Authentication 정보 생성.여기서 Authentication 정보는 아직 인증 안된 정보. 인증을 하기 위해서 필요한 정보
오늘 Authorization(인가) 흐름 Authorization 흐름 AuthorizationFilter 에서 SecurityContextHolder 를 이용해 SecurityContext에 있는 Authentication 을 가져온다. SecurityCon
오늘JWT토큰 기반 자격 증명 방식이다.= 인증된 사용자의 정보를 토큰에 저장하고, 접근 권한을 부여해 접근 권한이 부여된 특정 리소스에만 접근할 수 있게 하는 방식.JWT = JSON 포맷의 토큰 정보를 인코딩 후, 인코딩 된 토큰 정보를 Secret Key로 서명한
오늘 OAuth 2위 사진처럼 카카오나 네이버 같이 외부 인증을 통해 로그인을 할 수 있는 것을 말한다.Authorization Server클라이언트가 Resource Server 에 접근할 수 있는 권한을 부여하는 서버이다.Resource Server 클라이언트의 요
오늘리액티브 프로그래밍클라이언트의 요청에 반응을 잘하는 시스템을 의미한다.리액티브 프로그래밍을 위한 표준 사양 또는 명세라고 한다.Publisher데이터 소스로 부터 전달 받은 데이터를 내보내는(emit) 역할을 한다.subscribe 메서드의 파라미터로 전달되는 Su
오늘 Project Reactor Project Reactor Reactor 는 Publisher 타입으로 두 가지를 지원한다. Mono Flux Mono = 0 건의 데이터나 1건의 데이터를 emit 할 수 있다. Flux = 여러건의 데이터를 emit
오늘Cloud원래는 전산실에 컴퓨터를 배치해서 서비스를 제공했었다.하지만 그렇게 관리를 하면 공간도 많이 필요하게 될 것이며, 전산실에 문제가 생겼을 경우 모든 서버가 다 다운될 수도 있는 큰 단점이 있다. 자원 절약 : 클라우드 서비스 제공 업체가 컴퓨팅 자원을 관리
오늘클라이언트 배포데이터베이스 연결어제 서버까지는 배포를 완료했다.서버 배포내가 사용하는 resitory 의 클라이언트 디렉토리는 React, javaScript 언어로 되어있기 때문에 Build 의 과정이 필요하다.따라서 Build 부터 해보겠다wget -qO- ht
오늘 AWS 배포 자동화오늘은 클라우드 배포를 자동으로 해주는 실습을 해 볼 것이다.소스 코드부터 배포 과정을 연결하는 구조를 말한다.원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어 날 경우, 이를 감지해서 Build 에게 전달.전달 받은 코드를 컴파일, 빌
오늘Git Actions 로 배포 자동화출처 : 코드스테이츠 유어클래스github 레포지토리에 push 를 하면 GitHub Actions 가 알아차리고 작동한다.AWS S3 에 결과물 전송 및 저장. 그리고 동시에 Code Deploy 에게 배포를 명령한다.(어제와는
끝나지 않을 것만 같았던 섹션 4가 끝났다. 이제 내일부터 프로젝트에 들어가게 된다. 음... 현실감각이 잘 없지만 그래도 열심히 해보려한다.아직 부족한 것도 많고, 잘 할 수 있을지 모르겠고, 괜찮을까...등등 여러 걱정과 생각이 들지만 이런 생각은 계속 들 것 같다