[SEB BE] Section 1 Linux 기초 CLI 기본 명령어 개요 명령줄 인터페이스(Command-Line Interface, CLI) ex) 터미널로 하는 코딩 (모니터와 키보드만 사용하는 제어방식) 그래픽 사용자 인터페이스(Graphic User
지금 실행 중인 텍스트 에디터에서는 Ctrl + z를 여러 번 눌러 이전 상태로 돌아갈 수 있지만 만약 코드 수정 후 에디터를 종료했다면, 이전 상태로 돌아갈 수 없기 때문에 유지보수 측면에서 이전에 작성한 내용을 보존해야 할 필요가 있다.이전에 작성한 내용을 보존해
azul JDK 11(LTS) 버전으로 진행된다.컴퓨터의 기억 과정기억하고자 하는 값이 얼만큼의 메모리 공간을 필요로 하는지 파악한다.타입, 또는 데이터 타입은 데이터의 유형 (유형별로 차지하는 메모리 공간의 크기가 다르다.)기억하고자 하는 값이 차지하는 용량만큼의 메
학습량이 많아짐에 따라 블로깅 방식에 변화를 주려고 한다.앞으로는 배운 목록만 정리하고, 이해하기 힘들었거나 중요한 내용들 위주로 정리하고자 합니다.조건연산자출력하기 : System.out.print()출력하고 줄 바꾸기 : System.out.println()형식대로
각 값들이 같은 타입을 가지는 경우, 배열을 사용하면 여러 개의 변수를 선언하지 않고도 단 하나의 변수만으로 값들을 저장하고 참조할 수 있다.배열이 무엇인지 이해한다.1차원 배열과 2차원 배열을 이해한다.배열을 선언하고 초기화하는 방법을 이해한다.배열을 탐색하고 값을
객체를 정의한 '설계도(blueprint)' 또는 '틀(frame)’클래스는 객체를 생성하는데 사용되며, 반대로 객체는 클래스에 정의되고 설계된 내용 그대로 생성된다. 클래스는 객체 그 자체가 아니라 단지 객체를 생성하는 데 사용되는 하나의 틀이다.클래스를 통해 생성된
Section1 - [Java] 객체지향 프로그래밍 기초 생성자(Constructor)
기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소를 의미하위 클래스는 상위 클래스가 가진 모든 멤버를 상속받게 된다.따라서 하위 클래스의 멤버 개수는 언제나 상위 클래스의 그것과 비교했을 때 같거나 많다.단일 상속(single inheritance)
Section1 - [Java] 객체지향 프로그래밍 심화 -2 다형성(Polymorphism) > - 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미 상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한
1
Section1 - 컬렉션(Collection) 열거형(Enum)
5qjs6qjs7qjs이 상태에서 왜 안되는건지 모르겠다.removeFromNth메서드에 int index가 들어가 있었다.문제 초기화하고 다시 푸니까 됨... 언제 잘못 복붙했는지 모르겠다...20번이렇게 하면 몇개는 되고 몇개는 안된다...
소스 코드가 컴파일되거나 실행될 때에 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해주는 문법 요소@로 시작하며, 클래스, 인터페이스, 필드, 메서드 등에 붙여서 사용할 수 있다.JDK에서 기본적으로 제공하는 애너테이션은 아래의 두 가지표준 애너테이션 : JDK에
입출력을 다루기 위한 입출력 스트림
Section 1 - Java 심화(Effective) 스레드(Thread)
부트캠프에 시작한지 벌써 한달이 지났다.이제 5달 밖에 남지 않았다는 생각에 조급함이 느껴지면서도남은 5달을 지난 한달과 같이 보낸다면 백엔드 주니어 개발자가 되는데 부족함이 없을거라는 자신감 또한 느껴진다.부트캠프의 시작부터..부트캠프가 시작될 때를 돌아보면 나는 근
재귀 = 작은 문제를 해결함으로써 전체 문제를 해결하는 방법자기 자신을 호출하는 함수불필요하게 여러개의 반복문을 사용하지 않기 때문에, 코드가 간결해지고, 수정이 용이함.변수를 여러개 사용할 필요가 없다.반복문과 달리, 코드의 흐름을 직관적으로 파악하기 어렵다.반복하여
데이터 교환을 위해 만들어진 객체 형태의 포맷(자바 외의 프로그램과 데이터 교환하기 위한 포맷)jackson 라이브러리에서 제공하는 ObjectMapper클래스를 사용하여 JSON형태로 변경하는 방법writeValueAsString(objectMapperName) =
자료구조 = 여러 데이터의 묶음을 저장하고, 사용하는 방법 자료출처각 자료구조가 가진 특징사용하기 적합한 상황다른 자료구조와의 차이점
12번
DailyCoding Section2 - 코딩테스트 준비
물건을 박스에 넣으려 한다.박스에 최대수용 무게는 limit로 입력받고 각 물건의 무게는 배열행태로 입력받는다.박스에 최대 2개의 물건을 넣을 수 있음물건의 무게는 40 이상 240 이하limit는 물건1개의 무게보다 무조건 크게 주어진다.count가3일 때 arr은
DailyCoding Q: 띄어쓰기2개 1개로 바꿔라 A: 아래 3가지 방법으로 가능할 것 같다. 1. `replaceAll()` 메서드를 사용하여 공백 2개를 1개로 바꾸는 방법 2. `split()메서드를 이용해 공백2개를 기준으로 끊어서 문자열을 나누고 jo
웹 애플리케이션
웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식APIHTTP 프로토콜 기반으로 요청응답에 따라 리소스를 주고받기위한 메뉴판 역할리차드슨의 REST 성숙도 모델0단계: HTTP 사용1단계
stream을 이용해서 해보려 했는데 filter 조건문에 변수를 사용할 수 없어서 방법을 바꿧다.
입력 받는 배열의 순서를 뒤집어 리턴하라.반복문 사용금지재귀로 풀 것
Daily Coding
Daily Coding
Daily Coding - /, % 연산자 사용하지 않고 num1을 num2로 나눈 나머지 구하기 Section2 - [Spring Core] Spring Framework의 핵심 개념 DI(Dependency Injection)
str에서 숫자를 찾아 다 더하고 문자열의 (숫자와 공백을 제외한 나머지) 길이로 나누고 반올림하여 리턴하라.숫자와 공백을 제외한 나머지 << 조건을 뺴먹음모든 테스트 통과아래는 indexOf()를 활용한 방식indefxOf는 값이 존재하면 해당 인덱스를,
수행문을 반복하며 탈출조건에 따라 반복을 중지하게 된다는 점에서 재귀 함수는 while 반복문과 비슷하다고 할 수도 있지만 여러가지 차이점이 있습니다.첫번째로 반복의 종료과정에서 차이가 있습니다.while의 경우 조건식인 boolean타입을 통해 수행식을 더 진행할지
연속되는 숫자와 문자를 (연속하는 횟수 + 문자or숫자 형태로) 압축해서 리턴하라.3회이상 연속되는 경우만 압축하라.문제를 제대로 파악하자... 3회 이상 반복될 때만 압축해야 한다.일부 케이스는 되는데 일부 케이스는 압축이 제대로 안되고 있다.마지막 요소가 연속되지
Daily Coding - 21번
Daily Coding - 22번
Q1: @Validated 애너테이션을 작성 안해도 @Valid @RequestBody\~~가 정상작동 하는 이유는?A1:질문부터 잘못 됐다. @Valid가 붙어있으니 당연히 @RequestBody\~~가 정상작동 하는 것이다.@Valid @Validated 동작 원리
피보나치 수열 num번째 값을 리턴하시오.반복문 사용 금지제한시간 초과...뭔가 리스트를 이용해서 값을 저장해두고 꺼내와서 재귀 횟수를 절반 가까이 줄일 수 있을 것 같은데 잘안된다. 초기값 설정이 안된다.list를 다루는 스킬이 부족한 것 같아 일단 포기하고 배열로
부분집합인지 여부를 리턴하라.체크 예외발생한 예외를 잡아서(catch) 체크한 후에 해당 예외를 복구 하든가 아니면 회피 하든가 등의 어떤 구체적인 처리를 해야 하는 예외언체크 예외잡아서(catch) 해당 예외에 대한 어떤 처리를 할 필요가 없는 예외ex) NullPo
저작권 문제로 게시물 대부분 비공개 처리했습니다.
Math.pow를 사용하지 않고 거듭제곱을 구하시오.모든 테스트케이스 통과 but 시간복잡도 O(logN)을 만족하지 못했다.모든 테스트케이스 통과 && 시간복잡도 = O(logN)
Spring Data JDBC 기반의 도메인 엔티티 및 테이블 설계
Daily Coding - 28번
각 문자를 가지고 만들 수 있는 모든 부분집합을 리턴하라.
단위 테스트 코드는 대부분 메서드 단위로 작성된다.테스트 케이스(Test Case)테스트를 위한 입력 데이터, 실행 조건, 기대 결과를 표현하기 위한 명세메서드 등 하나의 단위를 테스트하기 위해 작성하는 테스트 코드Fast (빠르게): 테스트 케이스는 빠르게 실행되어야
DailyCoding33번최단거리 구하기Mock가짜 객체 (일부 기능만 갖고 있거나 유사한 객체를 의미)Mocking단위 테스트나 슬라이스 테스트 등에 Mock 객체를 사용하는 것MockitoMock 객체로 Mocking을 할 수 있게 해주는 라이브러리Mock 객체가
클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URL(또는 URI), request body, query parameter 등)를 문서로 잘 정리하는 것
연습내용 GitHub주소 resource만 보면 됨. IntelliJ IDE에서는 아래와 같이 Gradle task 명령을 통해 빌드 할 수 있다. :build:assemble, :check 같이 Gradle에서 빌드와 관련된 모든 task들을 실행실행 가능한 Jar
클라이언트의 요청이 DispatcherServlet에 도착합니다.DispatcherServlet은 HandlerMapping에게 요청을 전달합니다.HandlerMapping은 요청 URL을 보고, 어떤 Controller가 요청을 처리할지 결정합니다.HandlerMap
HTTPHTTPS = HTTP + SecureHTTP 프로토콜 내용을 암호화한 것SSL 혹은 TLS라는 알고리즘을 이용해 암호화제 3자가 서버와 클라이언트가 주고받는 정보를 탈취할 수 없도록 하는 것데이터를 탈취 당하더라도 그 내용을 알아볼 수 없게 하는 것비대칭키 방
[Spring Security] Spring Security 기본
Spring Security는 웹 어플리케이션의 보안을 처리하는 Spring 기반의 프레임워크입니다. 이번 포스트에서는 Spring Security의 인증 구성요소에 대해 살펴보겠습니다.DelegatingFilterProxy는 Spring Security의 필터 체인을
Spring Security의 권한 부여
토큰 기반 인증
[Spring Security] OAuth2 인증(Authentication) OAuth 2
위 그림에서 알 수 있듯 Authorization Code를 사용하냐 안하냐의 차이점이 있다.이로 인해 보안성의 차이점이 생긴다는데 왜 그럴까?Authorization Code 타입에서 authorization code를 사용하면, 사용자의 브라우저와 클라이언트 사이에
[Spring WebFlux] 리액티브 프로그래밍
Reactor리액티브 스트림즈(Reactive Streams)를 구현한 구현체 중 하나리액티브한 애플리케이션으로 동작하는데 있어 핵심적인 역할을 담당하는 리액티브 프로그래밍을 위한 라이브러리요청 쓰레드가 차단이 되지 않는다.Non-Blocking 통신을 완벽하게 지원하
WebFluxReactor의 타입인 Flux가 Web에서 사용되는 것Non-BlockingSpring WebFlux의 경우 Non-Blocking 통신을 지원Spring MVC의 경우 Non-Blocking이 아닌 Blocking 통신 방식을 사용유연함Spring We
신속한 인프라 구축유연한 인프라 관리예상치 못한 트래픽 폭주 대응손쉬운 글로벌 서비스강력한 보안과 장애 없는 서비스합리적인 요금제
터미널에서 아래 명령어 입력해서 ssh 키 페어(쌍)을 생성아래 명령어를 입력해 ssh키를 출력하고 복사(마우스 우클릭으로 복사 됨)Github-> setting -> SSH keys으로 이동New SSH Key 누르기복사해둔 키 붙여넣고 키이름(구분하는 용도) 설정c
인스턴스 탭에서 연결하고자 하는 인스턴스를 선택한 후 연결 버튼을 클릭하면 인스턴스에 연결하는 방법을 확인할 수 있다.Session Manager 연결(주황색 연결 버튼 누르면 아래와 같이 터미널이 열림)bash 쉘로 변경홈 경로로 이동EC2 인스턴스와 연결한 터미널에
테스트용으로 한거라 최대한 간력하게 적었습니다.(db 생성등 과정에서 각 옵션들은 경우에 따라 쓰는게 다르고 너무나 많기 때문...)구현이 완성된 정적 웹 페이지를 빌드클라이언트 프로젝트 파일에 npm install 명령어를 이용해 의존성 모듈 설치환경변수 설정.env
Docker실행 환경에 구애받지 않고 애플리케이션을 실행할 수 있게 해주는 프로그램컨테이너 방식으로 애플리케이션을 실행시킨다. 의존성 충돌 문제를 해결해 준다.개발과 배포 환경을 일치시킨다.수평 확장을 쉽게 해준다.각 서버에 새로운 내용을 배포하기 쉽게 만들어준다.특정
배포 자동화한번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것시간절약휴먼 에러(Human Error)를 방지소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조파이프라인의 단계는 상황과 필요에 따라 더 세분화되거나 간소화될 수 있다.
프록시 서버클라이언트가 서버와 소통할 때, 서버에 바로 접근하지 않고 자신을 통해 서버에 접근할 수 있도록 해주는 일종의 대리 서버
@CrossOrigin 애너테이션을 이용해 컨트롤러 혹은 메서드에서 CORS 정책을 설정하면 된다.애너테이션이 붙은 컨트롤러(혹은 메서드)에서만 적용되며 따라서 원하는 요청에 따른 응답에만 CORS 설정을 할 수 있다.
인증어떤 사용자인지 검증하는 과정회원가입 한 사용자인지 id와 pasward를 검증세션방식 인증, 토큰방식 인증인가인증 받은 유저의 권한에 대한 검증역할 기반 접근 제어(Role-Based Access Control, RBAC)서버 측에 인증된 사용자의 정보를 세션 형
칸반팀과 조직이 작업을 시각화하고, 업무의 병목 현상과 리소스 낭비를 해결하는 업무 관리 방법Work In Progress(WIP)현재 진행하고 있는 작업WIP limit칸반에서는 각 업무 단계에 WIP 제한을 둘 수 있다.Assigness해당 태스크를 맡은 사람을 지
,
rds프리티어 20GB까지 무료니까 기본 할당량 200 -> 20으로 변경하자.스토리지 자동 조정은 과금당하니까 해제하자.스키마 바로 같이 만들자.자바 server yml 연결방법
JWT(JSON Web Token) 인증은 사용자의 인증 정보를 토큰에 담아 서버에 전달하는 인증 방식이다. 사용자가 로그인을 하면 서버는 사용자의 인증 정보를 포함한 JWT를 생성하여 사용자에게 전달한다. 사용자는 이후 요청에서 이 JWT를 헤더에 포함시켜서 인증 정
기존에 회원 삭제를 할 경우 회원의 이메일을 del\_ + id + email 형태로 변경했었다.이메일은 변경하지 않고 MemberStatus로만 삭제회원을 구분하기 위해 로직을 변경했고 기존에 del\_로 시작하는 이메일을 갖는 회원 정보는 버그성 데이터가 되었다.
안녕하십니까. EduSync팀 백엔드 팀원 위원종입니다.저는 화면에 보이는 것과 같이 배포와 member entity관련 기능과 Security를 담당해 구현했습니다. 즉, 사용자 관련 기능을 담당하여 기능들을 구현했고, 보안을 강화하기 위해 리프래쉬 토큰을 Redis
처음 프로젝트를 기획할 당시 나는 많은 기능을 구현하고 싶었다. 하지만 많은 기능들을 욕심내는 나에게 감사하게도 이런 조언을 해주셨었다. 그 기능들이 추가된다고 해서 이력서에 쓸 한줄이 될 수 있을까요? 이 얘기를 듣고 열정의 방향성에 대해서 생각해 볼 수 있었다. 취