
🍭


window에서 리눅스 사용을 위한 과정Window Terminal root권한 실행dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart(Windows

mkdirgit init(디렉토리를 git관리 적용)git hub에서 repository 생성하여 SSH확인or git hub에서 Fork후 SSH확인git clone SSH주소 (복사)git remote add 별칭 (연결)git remote -v (연결 확인)본인(

QQQ
🦀🦀🦀내일추가하자
for (초기화; 조건식; 증감식)for (초기화 : 배열명칭) 증감식이 없는 형태, 배열에서 순차적으로 값을 꺼내 초기화한 변수에 할당무한루프를 돌게할 때 유용하다, 탈출코드를 잊지 않도록 하자do를 추가한다면 무조건 한번 실행 후에 조건식에 따라 반복을 결정한다가장
생성된 셀은 형태가 정해짐이때 참조변수는 배열의 맨 첫번째 주소를 가르킴int\[] 변수명; 선언변수명 = new int10; 초기화선언과 초기화를 한번에int\[] 변수명 = new int10; 값을 넣어 초기화int\[] 변수명 = {1, 2, 3};내용에 초기화된
인스턴스를 만드는 설계도클래스명은 대문자로 시작하는 것이 관례class 클래스명 {클래스 정의}속성변수, iv가 갖게될 속성접근지정자 타입 변수명;cv와 iv로 구성클래스변수?인스턴스가 생성과 관계없이 사용가능 클래스병.클래스변수명static, 즉 고정되어 같은 클래스

생성자는 인스턴스 초기화 매서드이다인스턴스 생성을 담당하는 것은 new키워드이다클래스와 이름이 같을것리턴 타입이 없을 것(void와는 다르다)오버로딩이 가능하다(클래스로 여러 인스턴스를 만드는 방법)생성자가 없을 경우 기본클래스를 자동 생성한다 클래스명(){}매개변수로

다형성조상참조변수로 자손객체생성참조변수의 타입변환instanceof추상화abstract추상클래스final인터페이스implement조상(공통 값)의 참조변수로 자손객체(개별객체)를 참조한마디로 하나의 객체가 여러 타입을 가질 수 있다는 것중복을 줄여 편의성을 높힌다.Pe

객체지향 프로그래밍 클래스와 객체 변수와 메서드 그리고 생성자 상속성, 캡슐화, 다양성, 추상화 공통점과 차이점 파악(추상화) 상속 구조 설계(다양성) 클래스 작성 상위클래스와 extends로 받는 하위클래스 private 필드(사용할 객체들 선언) 생성자(this를
얕은 복사같은 객체를 가르키는 매개변수newProduct깊은 복사새로운 주소값을 가진 객체를 가르키는 매개변수newProduct

enum 열거형이름 {}각각의 상수값은 다른 타입을 가질 수 있다스위치문 사용에 효율적0부터 시작하는 인덱스를 자동으로 할당각각의 값은 열거형이름.상수명 으로 호출상수는 관례로 대문자로 작성상수 값만을 가진 유사 클래스라고 보면 될듯(final 클래스로 선언되기에 상속
Q. 배열 - 리스트 변환Q. List 안에 HashMap<String, ArrayList> 저장Q. char\[] charArr = str.toCharArray()Q. hashMap.getOrDefaultQ. 다음은 실습문제중 List를 value로 가지는 Ha

컴파일이나 프로그램 실행시 정보 제공@키워드를 붙여 사용클래스, 인터페이스, 필드, 메서드 등에 사용기본적으로 JDK가 제동하나 타 프로그램에서 제공하기도 한다JDK에 내장된 기본 애너테이션, 경고메세지를 주로 주는녀석@Override@Deprecated@Suppres
sum() average(): mapToInt()로 형변환 이 필요IntStream LongStream DoubleStream 타입으로 변환 후 사용Option을 리턴하는 Stream 메서드sum(): OptionalIntcount(): OptionalLongavera

프로세스(Process)란 실행중인 애플리케이션(응용 프로그램)스레드란 프로세스 내의 코드 실행 흐름멀티스레드는 멀티 스레딩을 통해 동시 작업을 가능하게 한다서버 개발시 다수의 클라이언트 요청을 처리하기 위해 사용 됨소스 코드 내에 직접 스레드를 생성하여 멀티스레드가

기술 면접이란 단어가 참 낮설었다. 면접과 관련해 많은 경험이 있던건 아니지만, 내 이전 직무쪽으론 경력이 대부분의 직무능력을 대변했기 때문이다. 그 말은 비슷한 경력을 가진 사람은 비슷한 직무능력을 가진 사람이란 말이기도 했다. 때문에 면접에서 특별하게 무언가를 묻는

자기 자신을 호출하는 함수코드가 짧아져 고치기 쉽지만 알아보기 어렵다지역변수, 매개변수, 리턴값 모두를 process stack에 저장하여 메모리를 더 많이 집어먹는다. 메서드 호출, 종료이후 복귀를 위한 컨텍스트 스위칭 비용이 발생한다한마디로 스텍메모리가 힘들다\~~

자바스크립트 오브젝트 노테이션데이터 교환을 위한 객체 형태의 포맷자바스크립트 포함한 많은 언어에서 범용적으로 사용하고 있다ObjectMapper/writeValue()jackson 라이브러리의 ObjectMapper클래스로 JSON형태로 변환 할 수 있다Map<S
자료구조데이터 사용 방법론 데이터(data)를 순서대로 쌓는 자료 구조 LIFO(Last In First Out) PUSH() POP() empty() get() set(index,e) remove() 데이터는 하나씩만 넣고 뺄 수 있다 하나의 입출력 방향을 가짐 출력

Tree 단방향 그래프 구조 Root로 시작되는 node를 edge로 연결 Child Node가 없는 노드를 LeafNode라 한다 계층 구조로 깊이, 높이, 레벨등을 측정 할 수 있다 >#### depth 루트를 0으로 했을 때의 하위 노드 하나마다 +1이 된다
Graph Search Algorithm Graph Traversal BFS(Breadth-First Search) DFS(Depth-First Search) 실전문제 인접 행렬 생성하기 문제가 이해도 잘 안되고 어려워서 대충 이렇게하면 되지 않을까?라는 반복문을 작

문제 해결을 위한 최선의 선택최선의 선택을 찾는 방법?문제에 대한 이해전략 수립(슈도코드)코드 구현프로그래밍 언어가 아닌 일상어로 코드를 흉내 내어 알고리즘을 써놓은 것구현시 지표가 되며 디버깅에 용이, 소통 시에도 도움이 됨자신만의 원칙을 가지고 일관성 있고 다른 사

전편에서 했던 노가다 하기가 싫어서 BFS/DFS를 사용하지 않고 다른방법으로 짜봤는데 역시 새로운길 개척하는게 더 힘든거같다 아오DFS 바코드
알고리즘 연습
양방향 대기열Stack + Queue의 기능을 가짐, 양방향에서 추가 삭제가 용이선형 데이터 집합각 노드마다 데이터와 다음 노드의 주소를 가짐마지막 노드는 null을 가리킴추가, 삭제가 용이하나 특정 값 검색에 불리함키-> 해시 함수 ->해시(hsah) : 저장소의 크
GCD/LCM(최대공약수, 최소공배수)순열순서를 고려하여 선택한 요소를 배열하는 경우의 수 5개중 3개를 선택하는 모든 순열의 수 = 5P3r개의 순열의 수는 r!, n개에서 r개를 뽑아 만드는 순열의 수는n!/(n-r)! \-> 뽑을 것!/안뽑은 것!코드로 표현한다면
특정기기에 설치해서 사용하는 애플리케이션웹애플리케이션 보다 빠르다웹애플리케이션보다 안전하다기기에 접근이 용이하다개발비가 더 들어간다빠른 업데이트가 힘들다스토어의 승인이 필요하며 비용이 든다웹을 통해 접근이 가능한 프로그램추가적인 설치나 다운로드가 필요없다(브라우저로 실

인터넷에서 제공되는 하이퍼텍스트 시스템, HTML로 대표되는 하이퍼텍스트와 인터넷의 융합하이퍼텍스트? 문서 안에 다른 문서의 위치정보 등을 포함하여 문서 간 정보를 참조할 수 있는 문서클라이언트-서버 아키텍처2티어 아키텍처클라이언트-서버3티어 아키텍처클라이언트-서버-데
웹에서 사용되는 데이터와 자원을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식API 응용 프로그램 간에 데이터를 주고받는 데 사용되는 일종의 인터페이스HTTP 메서드GET, POST, PUT, DELETE2단계까지만 적용해도 좋은 A
Structured Query Language구조화 된 Query언어Query? : 질의문

https://start.spring.io/Spring Initializr add Lombok, Spring Webmain 실행 후 Started Section2Week3Application 출력 확인애플리케이션을 개발하는 데 사용되는 일련의 데이터 및 프로그

아키텍처
interface InitializingBean -> afterPropertiesSet()빈 객체 생성, 의존성 주입, 초기화빈 조회interface DisposableBean -> destroy()빈 소멸InitializingBean(초기화), DisposableBe

결합도(의존성)를 낮춰 변경에 닫혀있고 확장에 열려있는 유연한 코드를 위해일반적인 방법, 생성자 주입 방식결합도를 낮추기 위해 특정 클래스 메서드 사용시 클래스 내부에 클래스 타입의 객체를 통해 사용하지 말고(구현한)인터페이스 타입의 객체를 통해 사용할 것필드 주입,

공통 관심과 핵심 관심을 분리시켜 코드 중복을 제거코드의 재사용성을 높이는 프로그래밍 방법론핵심 기능 코드의 변경 없이 런타임 시 프록시 객체를 생성해 공통기능을 적용핵심 기능을 다른 객체에게 위임하고, 부가적인 기능을 제공하는 객체스프링 프레임워크는 프록시 객체를 자

서블릿(Servlet) API 기반 요청 처리 모듈(프레임워크)서블릿클라이언트의 요청을 처리하도록 특정 규약에 맞춰 Java언어로 작성하는 클래스 파일서블릿 컨테이너서블릿을 실행하고 관리하는 런타임 환경을 제공하는 소프트웨어 컴포넌트(독립모듈)웹 서버 내에 내장되어,

DTO Data Transfer Object 데이터 전송 객체 코드의 간결화 데이터 유효성 검증 Dto 클래스를 만들어 멤버변수에 에너테이션(@Email등)을 지정, 들어오는 값의 유효성을 확인. 실패시 요청을 거부함 HTTP 요청/응답의 DTO 적용(JSON 형
특정한 값 찾기에 특화된 탐색 알고리즘모든 값의 왼쪽은 크고 오른쪽은 작다, 중복되지 않는 키(값)을 이용하여 검색중간 값 확인(Root~)중간 값보다 큰가? 작은가?범위 축소 후 반복(재귀)Domain네트워크의 고유한 식별자, IP 주소와 대응되는 주소 체계Domai
proxy로 aspect를 적용하여 aop를 구현한다핵심개체(= 타겟객체)를 proxy가 감싸 aop를 구현한다

DI를 통한 서비스 계층 ↔ API 계층 연동 매퍼(Mapper)를 이용한 DTO 클래스 ↔ 엔티티(Entity) 클래스 매핑 서비스 계층과 API 계층의 연동 실습

@ExceptionHandler 예외값 클래스 객체를 예외처리 핸들러 메서드와 연결시켜 처리@RestControllerAdvice 예외값 클래스 객체를 예외처리 공통 클래스와 연결시켜 처리Controller(헨들러 메서드)에서 예외를 처리하게 해주는 애너테이션특정 예외

RuntimeException 계승하는 BusinessLogicException는 서비스계층에서 throw되고 있다handleBusinessLogicException 메서드는 thorw 된 BusinessLogicException를 받아 처리하는 ExceptionHan

Java Database ConnectivityJava 표준사양(내역, 명세)JDBC API로 JDBC드라이버 로딩 -> DB접근JDBC 드라이버DB 통신 담당 인터페이스, 벤더에 맞는 적절한 JDBC 드라이버를 구현해 제공 DriverManager클래스에서 드라이버

DDD도메인 주도 설계(Domain Driven Design)도메인비즈니스적 관점의 업무 영역애그리거트비슷한 업무 도메인들의 묶음각 애그리거트를 대표하는 도메인을 애그리거트 루트라고 한다애그리거트 객체 매핑 규칙모든 엔티티 객체의 상태는 애그리거트 루트를 통해서만 변경

페이지네이션 회원 정보 목록 조회 기능에 페이지네이션을 적용하는 실습 >#### 요약 > 쿼리 메서드는 를 인수로 받아 page, size에 맞게 추려진 Page타입을 반환한다 PageRequest는Pageable 인터페이스 구현체이며 page, size를 인수로 가진다 Page 클래스는 getContent(), getTotalElements(), ge...

Java Persistence API

JpaRepository상속JPQL을 통한 객체 지향 쿼리객체를 대상으로 객체 조회, 내부적으로 SQL을 만들어줌@Query(value = "SELECT c FROM 클래스명 c WHERE c.필드명 = :coffeeId")JDBC 는 테이블명과 컬럼명을 넣은 것과 달

트랜잭션여러 명령 쿼리를 하나의 구룹으로 묶어놓은 작업 단위데이터베이스 내 트랜잭션의 안정성을 보장할 수 있는 트랜잭션의 성질Atomicity(원자성)하나의 트랜젝션은 모든 작업이 일괄적으로 성공하거나 실패해서 예측가능 해야 한다일부가 실패하면 그 작업은 실패한 것으로

JUnit Testing, Assertion 메서드, Hamcrest 메서드

createMember() 메서드에@Transactional 설정meberRepository.save() 메서드 실행 후sendEmailAsync() 메서드에서 MailSendException 예외 발생RuntimeException이 throw 되어 전체 트랜젝션 롤백
JUnit 기반 Assertion에서 보편적으로 사용되는 Assertion Framework다양한 Matcher를 통해 가독성을 높혀준다assertThat()의 두번째 파라미터에 사용한다assertThat(actualValue, is(expectedValue));is(
@DataJpaTest

컨트롤러 슬라이딩 테스트(with Mockito) 공통 설정 Patch Test >#### 1. given Dto -> entity() -> given(willReturn()) > 2. when <p align=
Test Driven Development테스트 주도 개발품질 좋은 소프트웨어를 개발하기 위한 방법론 중 하나TDD의 핵심 원칙"실패하는 테스트를 작성하기 전에는 절대로 코드를 작성하지 않는다"모든 조건에 만족하는 테스트를 먼저 진행조건에 만족하지 않는 테스트를 단계적

REST API 요청 정보(요청 URL, request body, query param 등)의 문서화 하여 API 문서(스펙)를 만드는 과정 @ApiOperation @ApiResponses @ApiResponse @ApiModel @ApiModelProperty

get 맴버 전체를 조회이전과 달리 member -> MemberResponse 매퍼가 MockBean 등록되어 있었기 때문에 관련한 given()을 새로 정의해 줘야 했다전체조회는 페이지네이션이 적용되어있기 때문에 willReturn() 에 넣어줄 Page<>

만든 어플리케이션을 실행 가능한 (.Jar)확장자로 빌드하자1\. IntelliJ IDE에서 빌드 build > bootJar or build task 실행 :build - 실행 가능한 Jar 파일 이외에 plain Jar 도 생성 :bootJar - 실행 가능한 Ja

기술면접 질의 답변, 회고록 .3

HTTPS/Hashing/Cookie/Session/Cross-Site Request Forgery (CSRF)
폼 기반 인증HTTPJWT(JSON Web Token)OAuth2 인증스프링 시큐리티의 필요성사용자 인증 권한부여를 구현한 프레임워크스프링 부트 사용을 통해 간단한 설정으로 많은 기능을 제공한다Principal(주체)서비스를 이용할 수 있는 사용자유저 외에도 작업을 수

Spring Security 인증 처리 흐름 Security Filter 컴포넌트 실행 과정
SecurityFilterChain-폼 인증을 적용
Spring Security의 권한 부여 컴포넌트권한에 따른 URL 액세스를 제한SecurityContextHolder로 부터 Authentication 획득AuthorizationFilter로 부터 Authentication(인증)와 HttpServletRequest

Spring Security(JWT 인증)

no exception no Successful execution

JWT 생성 테스트 케이스 검증 <img src="https://velog.velcdn.com/images/dioneo54/

JWT를 정리한 글입니다

OAuth 써드 파티 앱에서 인증을 대신하여 Resource에 대한 토큰을 발급하면, Client(서버)가 해당 토큰을 이용해 써드 파티 앱의 서비스를 사용하게 해주는 방식 써드 파티 앱 API의 직접적인 사용 추가 인증 서비스 Resource Owner 서비스를

🌐Docker

구글에서 개발한 컨테이너 오케스트레이션 도구로 규모 분산 애플리케이션의 배포, 관리, 확장을 자동화하는 오픈 소스 플랫 폼오케스트레이션

쿠버네스티(K8s)를 실행하는 미니쿠브!

어파치/ JWT+AOuthㅤ

Amazon Web Service 클라우드 컴퓨팅 SaaS - 클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공 PaaS - 클라우드 제공자가 가상 컴퓨터를 제공 IaaS - 클라우드 제공자가 가상화된 인프라(컴퓨터를 만들수 있는) 자원을 제공 Deployment

프록시 서버의 종류


Continuous Integration코드 변경 시 마다 자동으로 빌드하고 테스트를 수행하는 프로세스이는 수동 빌드로 인한 인적 오류를 줄여 코드 품질을 향상시키고 빠른 피드백을 줌으로 효율성을 올려준다실행가능한 소프트웨어, 아티팩트를 만드는 과정.아티팩트는 바이너리

EC2 인스턴스에서 Docker 배포하는 과정
나의 3대 죄악 ''빼먹기 띄어쓰기 빼먹기 스펠링 틀리기
A. 하위클래스가 상위클래스를 상속함으로서 상위클래스의 기능까지 확장할 수 있다\-코드의 재사용성을 높힐 수 있다 즉 코드 중복을 줄여준다\-코드의 가독성을 높힌다\-객체간 계층구조 표현에 유용하며 이를 통한 유지보수성도 향상된다A.class Cat extends An

상속포함오버라이딩supersuper()캡슐화패키지접근제어자gettersetter상위 클래스로 부터 맴버(필드, 메서드, 내부클래스)확장공통 속성, 기능에 대한 코드 중복 제거class \[자손] extends \[부모] {}java 객체지향 프로그래밍은 단일상속만을 허
지속적 배포(CD) Continuous Deployment 코드 변경시 자동 테스트와 빌드를 거쳐 운영환경에 배포하는 것 개발팀과 운영팀간의 협업을 돕고 안정적인 운영과 고객의 요구에 빠른 대응을 가능하게 함 보안과 안전성을 고려한 CI/CD 파이프라인 구성에 있어서

파이프라인

기존의 서버 기반 아키텍처에서 벗어나 개발자들이 서버를 직접 관리하지 않고 클라우드 서비스 제공업체가 애플리케이션을 실행배포 및 관리를 단순화하고 효율적인 자원 사용을 가능하게 함.인프라 관리에 대한 부담을 줄이고 유연한 확장성과 고가용성, 유휴 용량이x서버리스는 마이
기술면접 ✔ 인증 / 보안 1번 - 인증과 인가의 차이에 대해 설명해 주세요. 2번 - 세션에 대해서 모르는 사람한테 설명하듯 간단하게 설명해 주세요. 3번 - 세션과 쿠키 그리고 토큰 인증 방식에 대해 설명해 주세요. 4번 **- 세션과 토큰 인증 방식 중 각각의 장단점을 말씀해 주세요. 5번 - HTTP와 HTTPS 각각에 대해 설명하고둘의 ...

프로젝트 기획과 분석/설계 - 사용자요구명세
사용자 요구사항 정의서/화면 정의서/ API 명세서

본 학습에서는 Agile 방식으로 project 진행을 요구한다.보통 하나의 개발주기(스프린트)는 1~2주, 길게는 4주큰 기능을 작은 단위로 쪼개어 스프린트 반복고객(타 부서 및 발주처를 포함하며)과의 적극적인 소통으로 품질을 높일 수 있도록 하자선형적인 접근으로 단
Agile
프로젝트 소개문서, 팀 미팅기록, 개인 블로그, 프로젝트 회고, 팀원 리뷰, 셀프리뷰....문서가 너무 많아!!!

테이블 명세서 작성과 식단 추천 로직에 관해
SQL과 NoSQL DB의 차이점과 장단점Java 메모리 구조Java GC의 역할, 동작authentication(프로젝트 구현한 것을 기준으로)쿠키와 세션의 차이점과 사용처