컴퓨터와 프로그래밍의 이해컴퓨터의 구성 요소프로그래밍과 관련된 개념웹 클라이언트 & 웹 서버개발환경 세팅IntelliJ프로그램은 소프트웨어 또는 애플리케이션이라고도 불린다.컴퓨터란, 입력 받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 전자 장치이
HTML 요소(Element), 태그HTML& CSS 기본구조와 문법웹 문서의 구조와 내용을 HTML로 작성CSS 박스모델 HTML 구조CSS 스타일JS 상호작용HyperText Markup Language - 웹페이지의 내용과 뼈대를 정해진 규칙대로 기술 하는 마크업
레이아웃을 위한 HTML 구조Flexbox 개념과 내용와이어프레임부모에게 영향을 줘서 자식에게도 영향을 준다.주축과 교차축이 바뀔수가 있다.콘텐츠 흐름은 좌에서 우, 위에서 아래로 흐른다. 수직분할과 수평분할을 차례대로 적용수직분할 : 화면을 수직으로 구분하여, 콘텐
첫 페어프로그래밍페어와 함께 트위터 홈페이지 클론 실습html과 CSS를 활용해 레이아웃과 디자인 및 내용 삽입오늘 처음으로 페어프로그래밍을 진행했다. 내가 드라이버로서 페어인 네비게이터가 방향을 제시해주면 내가 참고하여 코딩을 직접 작성하고 네비게이터에게 내가 작성
리눅스 터미널 실행및 기본적인 명령어 사용절대경로와 상대경로의 차이텍스트에디터 nano를 이용한 파일 수정및 저장패키지와 apt 패키지 매니저사용 권한과 소유자, 사용권한 변경Input source : 입력을 담당하는 키보드나 마우스를 입력 소스Output sourc
Git의 환경설정Github과 Git의 관계Local Repository와 Remote Repository의 차이Github의 기능과 Git 명령어를 사용Git의 세 가지 영역 및 상태Git : 소스 코드 기록을 관리하고 추적할 수 있는분산형 버전 관리 시스템Git이
자바 기초문법 이해문자열 메서드사용법변수와 자료형에대한 이해와 자료형 변환산술, 비교, 논리 연산자객체지향 프로그래밍(Object Oriented Programming, OOP)언어(~1996)JRE(Java Runtime Environment: JVM(자바 가상머신)
for문과 while문의 공통점과 차이점if와 else if , else, switch를 이해하고 활용변수가 어떤 값을 갖느냐에 따라 실행문이 선택됩니다괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행break문을 작성하지 않으면 switch문을 탈출하지
1차원배열과 2차원배열가변배열배열 탐색계산기 프로그램 만들기변수는 하나의 값만 저장할 수 있다배열을 사용할 경우, 여러 개의 변수를 선언하지 않고도 단 하나의 변수만으로 값들을 저장하고 참조할 수 있다.배열 : 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조메모리
클래스객체필드메서드메서드 오버로딩Reference(참조) : 참조를 하려면 메모리 어딘가에 인스턴스가 있어야 한다.Static(정적): 모든 객체와 메모리 공유객체(Object) : '모든 실재(實在)하는 어떤 대상, 사물 뿐만아니라 사람과 동물, 심지어 눈에 보이지
생성자 개념기본생성자매개변수가 있는 생성자this.this() 메서드객체를 생성하는 역할을하는 클래스 구성요소인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드정보 은닉을 하기위해 private 영역에 변수를 선언해 놓으면 main문에서 접근 하는 것이 불가능하다.
상위 클래스 - 하위클래스의 상속 관계extends 키워드포함관계와 상속관계의 차이메서드 오버라이딩super , super( )기존의 클래스를 재사용하여 새로운 클래스를 작성하는 자바의 문법 요소extends 키워드를 사용하며, 클래스명 다음에 extends 상위 클래
다형성참조변수의 타입 변환instanceof 연산자추상화abstract제어자final 키워드인터페이스하나의 객체가 여러 가지 형태를 가질 수 있는 성질상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한 것그 반대는 허용되지 않는다. 즉,
제네릭 클래스제네릭 메서드컬렉션 프레임워크의 핵심 인터페이스, 메서드타입을 구체적으로 지정하는 것이 아니라, 추후에 지정할 수 있도록 일반화해두는 것작성한 클래스 또는 메서드의 코드가 특정 데이터 타입에 얽매이지 않게 해둔 것단 하나의 클래스만으로 모든 타입의 데이터
enum애너테이션람다스트림파일 입출력열거형(Enumerated Type)여러 상수들을 보다 편리하게 선언하고 관리할 수 있게한다.상수명의 중복을 피하고, 타입에 대한 안정성을 보장더 간결하고 가독성이 좋은 코드를 작성switch문에서도 작동이 가능enum 열거형이름 {
1.스레드2.스레드 동기화3.예외처리4.JVM애플리케이션이 실행되면 운영체제가 메모리를 할당해주며 애플리케이션이 실행된다.실행중인 애플리케이션데이터, 컴퓨터 자원, 스레드로 구성프로세스 내에서 실행되는 소스코드의 실행흐름데이터와 애플리케이션이 확보한 자원을 활용하여
재귀 개념재귀함수원래의 자리로 되돌아가거나 되돌아옴.자기 자신을 끝없이 호출하면서 같은 코드가 반복해서 실행된다.자기 자시을 호출하는 함수불필요하게 여러개의 반복문을 사용하지 않기 때문에, 코드가 간결해지고, 수정이 용이변수를 여러개 사용할 필요가 없다.코드의 흐름을
JSON재귀StringBuilderJavaScript Object Notation데이터 교환을 위해 만들어진 객체 형태의 포맷네트워크를 통해, 어떤 객체 내용을 다른 프로그램에게 전송하기 위한 조건수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한
Structured Query Language → 구조화된 Query 언어(DB용 프로그래밍 언어)Query란 ?질의문( 검색어)저장되어 있는 정보를 필터하기 위한 질의문(필터링)데이터베이스에 query를 보내 원하는 데이터만을 뽑아올수 있다.SQL을 사용하기 위해서는
MySQL 활용스키마 & 쿼리 디자인DB 설계Instagram 스키마 디자인 - ERD 다이어그램 실습SQL 활용 ERD 설계데이터(data): 각 항목에 저장되는 값테이블(table; 또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으
TCP/IP UDPPORTDNSURL , URI2-TIER, 3-TIER 아키텍쳐SSR, CSRCORSAJAX특정기기(모바일,PC)에 설치해서 사용하는 애플리케이션Apple iOS, Android OS, Windows 와 같은 특정 실행환경에 종속웹애플리케이션보다 빠르
HTTP 메시지HTTP 메서드MIME타입CORSHTML과 같은 문서를 전송하기 위한 Application Layer프로토콜웹 브라우저상에서 클라이언트와 서버간의 통신을 담당클라이언트가 HTTP messages 양식에 맞춰 데이터 요청을 보내면, 서버도 HTTP mess
GraphTreeBsTString method단방향 그래프의 한 구조로, 하나의 뿌리로부터 가지가 사방으로 뻗은 형태데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조아래
1.의사코드(Pseudo Code)그리디브루트포스이진 탐색 알고리즘순열과 조합문제를 해결하는 최선의 선택연습장, 화이트보드에 전체적인 그림을 그려보자인간의 사고로 문제를 해결할 수 있어야한다.알고리즘 전략은 잘 짜여진 수도코드에서부터 시작한다. 코드작성전에 수도코드 먼
Spring FrameWorkPOJOSOLIDAOPPSAIOC / DISpring Initializr 공식 사이트 활용 하여 Spirng Boot 기반 샘플 프로젝트 생성https://start.spring.io/File > Settings > Build,
시스템 아키텍처소프트웨어/ 애플리케이션 아키텍쳐계층형 아키텍쳐하드웨어와 소프트웨어를 모두 포함하는 어떤 시스템의 전체적인 구성을 큰그림으로 표현한 것시스템을 구축하는데 있어 해당 시스템의 비지니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것최대한 심플함을 유
스프링 컨테이너Bean의존관계 주입 DI컴포넌트 스캔AppConfig - 애플리케이션의 전체 동작을 구성하기 위해 사용직접 객체를 생성하는 코드에서 생성자를 통해 객체를 주입 받고 해당 객체는 AppConfig에 의해 결정될 수 있도록 코드를 수정서비스Impl는 의존관
AspectAdvicePointcutJoinPoint부가 기능을 정의한 코드인 어드바이스(Advice)와 어드바이스를 어디에 적용할지 결정하는 포인트컷(PointCut)을 합쳐 하나의 모듈로 만든것 여러 객체에 공통으로 적용되는 기능AOP는 기존에 사용하던 OOP를
Spring MVC\*\*Spring MVC의 동작 방식과 구성 요소\*\*핸들러 메서드RestClient서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈웹프레임워크의 한 종류클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로
도메인 EntityDTO 클래스 ↔ 엔티티 클래스 매핑API 계층에서 전달 받은 요청 데이터를 기반으로 서비스 계층에서 비즈니스 로직을 처리하기 위해 필요한 데이터를 전달 받고, 비즈니스 로직을 처리한 후에는 결과 값을 다시 API 계층으로 리턴해주는 역할서비스 계층에
JDBCSpring Data JDBCAggregate엔티티, 서비스, 리포지토리 구현Java 기반의 애플리케이션에서 사용하는 데이터 액세스 기술의 기본이 되는 저수준(low level) APIUntitledJDBC 드라이버 로딩JDBC 드라이버는 DriverManage
엔티티와 테이블간의 매핑기본키 매핑필드와 컬럼 간의 매핑엔티티 간의 연관 관계 매핑@Entity매핑 애너테이션을 이용해 엔티티 클래스와 테이블을 매핑클래스 레벨에 @Entity애너테이션을 붙이면 JPA 관리 대상 엔티티가 된다.애트리뷰트 - name엔티티 이름 설정필수
트랜잭션ACID 원칙트랜잭션 전파트랜잭션 격리 레벨여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위작업을 더이상 쪼갤 수 없음을 의미물리적으로는 여러 개의 작업이지만 논리적으로는 마치 하나의 작업으로 인식해서전부 성공하든가 전부 실패하든가(All or Not
데이터 목록은 한 번에 불러오고 보여주기 어려워, 그 일부만 가져와서 보여주는 방법LIMIT 구문은 데이터를 원하는 만큼 가져오고 싶을 때 사용limit 3,2 : 3번째 데이터부터 두 개를 가져오겠다 (3번째, 4번째 데이터 가져옴)page 와 size 가 주어졌을
\*\*ExceptionHandler\*\*\*\*RestControllerAdvice\*\*체크 예외언체크 예외\*\*사용자 정의 예외(Custom Exception)\*\*Spring에서 내부적으로 처리하는 에러 응답 메시지를 우리가 직접 처리하도록 코드를 수정해
단위 테스트슬라이스 테스트JUnitHamcrestMockitoTDD애플리케이션을 사용하는 사용자 입장에서 애플리케이션이 제공하는 기능이 올바르게 동작하는지를 테스트일반적으로는 테스트 전문 부서(QA 부서) 또는 외부 QA 업체등 개발자가 아닌 제 3자가 진행클라이언트
클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URL(또는 URI), request body, query parameter 등)를 문서로 잘 정리하는 것API 문서 / API 스펙 : API 사용을 위한 어떤 정보
Gradle task 명령을 통해 애플리케이션을 손쉽게 빌드가능Gradle 윈도우 탭을 클릭프로젝트 이름 > Tasks > build에서 :bootJar 또는 :build task를 더블 클릭빌드가 정상적으로 종료되면 build/libs디렉토리에 Jar 파일 하나가
암호화와 hashing, salting권한 부여(Authorization)와 인증(Authentication)쿠키의 작동 원리http + securehttp프로토콜 내용을 암호화HTTPS는 HTTP요청을 SSL혹은 TLS라는 알고리즘을 이용해, HTTP통신을 하는 과정
사용자의 웹 요청이 Controller 같은 엔드포인트를 거쳐 접근하려는 리소스에 도달하기 전에 인증 관리자나 접근 결정 관리자 같은 컴퍼넌트가 중간에 웹 요청을 가로채 사용자의 크리덴셜과 접근 권한을 검증사용자의 크리덴셜(Credential)이란 해당 사용자를 증명하
세션 기반 인증 = 서버or DB에 유저 정보를 담는 방식이 부담을 클라이언트에게 넘겨 줄수 없나? 에서 고안됨대표적인 토큰기반 인증 → JWT(JSON WEB TOKEN)생성된 토큰을 헤더에 포함시켜 request 전송 시, 인증된 사용자인지를 증명하는 수단마패 같은
LoginDTO 클래스는 클라이언트가 전송한 Username/Password 정보를 Security Filter에서 사용할 수 있도록 역직렬화(Deserialization)하기 위한 DTO 클래스로그인 인증에 성공한 클라이언트에게 JWT를 생성 및 발급하고 클라이언트의
만약 서버가 요청에 대한 수용 능력이 한계에 도달한다면 어떻게 대처할까?과거같은 공간에 더 많은 컴퓨터를 제공하여 한 대가 해결할 수 있는 요청을 여러 대가 나누는 방식을 사용혹은 컴퓨터 한 대의 성능을 높이는 방식전산실 모습Untitled기존 방식 한계주기적인 유지
도커(Docker)는 바로 Docker Hub라는 소프트웨어 저장소와 함께 빠르게 성장했고, 그 결과 개발자들은 쉽게 애플리케이션을 포장하고, 컨테이너 방식으로 실행할 수 있게 되었습니다.컨테이너 기술의 장점실행 환경에 구애받지 않고 애플리케이션을 실행할 수 있다!의존
개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미테스트, 빌드, Dockerizing, 저장소에 전달 까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로
Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼Github Actions는 Runner 위에서 실행이 되고, Runner는 가상 머신 위에서 실행이 됩니다.Github에서 두 종류의 Runner를 제공합니다. G
프록시 서버(Proxy Server)는 클라이언트가 서버와 소통할 때, 서버에 바로 접근하지 않고 자신을 통해 서버에 접근할 수 있도록 해주는 일종의 대리 서버입니다.일반 사용자는 지역이 제한되어있는 서비스를 이용하기 위해 우회하거나, 캐시를 통해 더 빠른 이용을 하기
본내용은 Doit! HTML+CSS+자바스크립트 웹표준의 정석 책을 참고하여 작성하였습니다.http://www.yes24.com/Product/Goods/96674934HTML은 웹문서의 내용을 구성하고, CSS는 웹문서의 레이아웃이나 색상, 스타일 등을 지정
본내용은 Doit! HTML+CSS+자바스크립트 웹표준의 정석 책을 참고하여 작성하였습니다.http://www.yes24.com/Product/Goods/96674934사용자가 화면에서 버튼을 클릭하거나 항목을 선택하는 것을 ‘이벤트’라고 한다.이벤트가 발생했
자바스크립트를 이용하여 웹 문서에 접근하고 제어할 수 있도록 객체를 사용해 문서를 체계적으로 정리하는 방법출처:https://ossam5.tistory.com/232DOM트리 : 부모와 자식 구조로 표시트리에서 갈라져 나가 항목을 노드라고 하며, html 노드
채팅방의 메인 저장소 부재로 서버의 메모리에 적재된 채팅방은 서버를 재시작할 때마다 초기화 되는 이슈 발생DB를 이용하거나 다른 저장소를 이용하여 채팅방이 계속 유지되도록 처리가 필요 ⇒ Redis 사용 채팅서버가 여러개일 경우 서버간 채팅 공유 불가현재는 pub/