스프링의 생태계/Spring과 객체지향/SOLID원칙/Spring의 핵심 및 컨셉
·
🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤/⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ
📣 본 포스팅은김영한선생님의 스프링 핵심원리-기본형 강의를 기반으로 작성되었습니다.📣 스프링 역사 - 릴리즈 • 2003년 스프링 프레임워크 1.0 출시 - XML • 2006년 스프링 프레임워크 2.0 출시 - XML 편의 기능 지원 • 2009년 스프링 프레임워크 3.0 출시 - 자바 코드로 설정 • 2013년 스프링 프레임워크 4.0 출시 - 자바8 • 2014년 스프링 부트 1.0 출시 • 2017년 스프링 프레임워크 5.0, 스프링 부트 2.0 출시 - 리엑티브 프로그래밍 지원 • 2020년 9월 현재 스프링 프레임워크 5.2.x, 스프링 부트 2.3.x 스프링 생태계 필수 • 스프링 프레임워크 • 스프링 부트 선택 • 스프링 데이터 : jpa • 스프링 세션 : 세션관리 • 스프링 시큐리티 :..
Swagger가 뭔가요
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ Nᴏᴅᴇ.Jꜱ
API-Docs 사용하는 이유 프론트엔드 사람들에게 어떤 기능이고 어떻게 사용하는 것 인지를 명시해줘야 된다 api만 만드는 것이 아닌 항상 docs를 같이 만들어야 한다 보통 API 위에다 정의하기도 하지만 그렇게 할 경우 소스코드가 너무 길어지기 때문에 별도의 파일이나 폴더를 생성하여 구분해 관리하기도 한다 별도의 파일로 관리 시 Import필요 라이브러리 swagger-ui-express npm i swagger-ui-express yarn add swagger-ui-express swagger-jsdoc yarn add swagger-jsdoc 기본 템플릿 /* @openapi / : get : descriptionb : Welcome to swagger-jsdoc responses : 200 :..
cors , 꼭 알고 가야한다
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ Nᴏᴅᴇ.Jꜱ
CORS sop(same origin policy) : 같은 출발지 정책 브라우저에선 보안적 이슈로 cross-origin http 요청을 제한한다 그래서 cross-origin 요청을 하려면 서버의 동의가 필요하다 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고 동의하지 않는다면 브라우저 에서 막는다(거절) 이러한 동의하는 로직을 HTTP-header를 이용한다 이를 cors(Cross-origin Resource Sharing)이라 부른다 Cross-origin이란? 프로토콜이 다르다 : http와 https는 프로토콜이 다르다 도메인 : domain.com과 other-domain.com은 다르다 포트 번호 : 8080 포트와 3000포트는 다르다 CORS가 필요한 이유 CORS가 없이 모든 ..
express기초-nodemon
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ Nᴏᴅᴇ.Jꜱ
express 사용법 // js 파일 상단에 Import를 먼저 해야함 import express from 'express' // 해당 js파일이 있는 경로로 터미널을 실행한다 yarn init // packag.json 파일이 생성됨 "type" : "module" // 패키지 파일에 해당 내용을 추가하고 저장한다 // yarn을 통해 express 설치 // json파일의 "dependencies" 내용에 설치한 Express 목록이 추가되어야 한다 dependencies란? 설치했던 파일 목록이고 개발 환경의 히스토리이다 만일 nodemoules 파일 삭제시 재설치를 해야하며 재 설치시 yarn install 만 입력하면 처리됨 [주의점] 모든 명령어는 package.json 파일이 있는 폴더에서 ..
데이터통신-요청헤더,응답헤더
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ Nᴏᴅᴇ.Jꜱ
주요 프로토콜 FTP : 파일 프로토콜 SMP : 메일 프로토콜 HTTP : 하이퍼텍스트 프로토콜 HPPS : 하이퍼 텍스트 시큐리티 프로토콜 (보안) HTTP 요청(requrst) 과 응답(response)으로 통신한다 전달 데이터 형식 : 헤더와 바디로 구분된다 Requst 요청 헤더 : 브라우저의 정보, 전달하는 객체의 형태 요청 바디 : 내용 [ 내용은 객체에 담아서 전송한다 ] Response 응답헤더 : 보내는 곳의 정보 , 보내는 내용의 객체 형태 응답바디 : 내용 [ Key : Value ] 형태로 전달된다 요청 헤더와 응답 헤더는 다른 것 이다 [!상태코드] 응답 헤더에는 상태코드(100,200,400,…)가 포함되어 있다 상태코드가 별도로 있는 이유는 컴퓨터가 인식할 수 있도록 하는 ..
API CRUD 간단정리
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ Nᴏᴅᴇ.Jꜱ
CRUD create / read / update / delete C : 생성 post메서드(axios rest-API) mutation(apollo-client/graphql-API) R : 조회 get메서드(axios rest-API) query(apollo-client/graphql-API) U : 수정 put메서드(axios rest-API) mutation(apollo-client/graphql-API) D : 삭제 delete(axios rest-API) mutation(apollo-client/graphql-API) Mutation과 Query차이 데이터베이스 안에서 무언가 조작하여 데이터 변형이 있는 경우 위험한 작업임을 알 수 있도록 메서드 명이 mutation 이다 몇번을 조회하더라도 ..
API와 Node
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ Nᴏᴅᴇ.Jꜱ
API를 꼭 써야하는지 ? 백앤드 API를 꼭 거쳐야 하나요 ? 브라우저에서 바로 DB로 저장하면 안돼나요 ? 안됩니다 . 데이터를 꼭 검사해야합니다. 백엔드에서 하는 역할은 '검증,보안,안전’입니다 보안이 중요하다보니 해커가 데이터를 이상하게 보내게되어 DB에 문제가 생길 수 있는 부분이 발생될 수 있다. 브라우저에서는 자바스크립트 코드가 노출되어있기 때문에 보안이 취약하다 그래서 보안에 취약한 로직들이나 함수 등등 이런 부분들을 백엔드에서 처리한다 모듈화 프로그램 모든 프로그래밍에 기법은 모듈화가 일반적이다. 개발자가 모든 기능을 다 개발할 수 없기 때문에 다른 사람들이 올린 기능들을 가져다 쓸 수 있는 장점이 있다. java -> Maven(예전에 자주쓴 라이브러리) / Grandle (요즘 쓰는 ..
Spring Boot - JPA
·
🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤/⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ
#김영한 #스프링 #Spring #인프런 #인프런수업 본 포스팅은김영한선생님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술 강의를 기반으로 작성되었습니다. JPA 자바 퍼시스턴트 API 기존 반복 코드는 물론이고 기본적인 SQL도 JPA가 직접 만들어 실행해준다 SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다 JPA사용 시 개발 생산성을 크게 높일 수 있다 국내에 점유율은 마이바티스가 높지만 전세계적으로 봤을 때엔 JPA가 독보적이다 인터페이스만 제공하며 구현체로 Hibermate, Eclipse Link등 구현 기술들의 여러개 밴더들 제공하며 주로 Hibermate꺼를 쓴다 java진영에 표준 인터페이스이고 구현은 여러 업체들이 한다고 보면 된다..
Spring Boot - 스프링 통합 테스트
·
🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤/⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ
#김영한 #스프링 #Spring #인프런 #인프런수업 본 포스팅은김영한선생님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술 강의를 기반으로 작성되었습니다. 테스트의 종류 단위테스트 통합테스트 단위테스트 단위테스트는 조금씩 쪼개서 테스트를 하는 것으로 기능을 만들 때 잘 동작 되는지 테스트를 하는 것 이다 장점 : 빠르게 테스트를 할 수 있음 통합테스트 전체적으로 잘 동작하는지 테스트하는 것 Spring에서 통합 테스트를 할 경우 단위 테스트보다 더 오래걸린다 지금처럼 기능이 많이 없는 경우 빨리 처리되지만 실무에서 많은 기능과 코드가 있는 상태에서 통합테스트를 하게 된다면 오래 걸리기 때문에 단위 테스트 부터 탄탄하게 진행하는 것이 좋다 Spring 통합테스트 Annotatio..
Spring Boot - 웹 MVC개발 :: 회원 가입 구현
·
🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤/⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ
#김영한 #스프링 #Spring #인프런 #인프런수업 본 포스팅은김영한선생님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술 강의를 기반으로 작성되었습니다. 홈화면 추가 controller 패키지 내부에 HomeController 클래스 추가 @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } Controller를 명시하고 @GetMapping Annotaction을 명시해준다 @GetMapping(“/”) 경우 도메인주소를 의미함 localhost:8080/ 으로 접근 했을때 home.html로 이동한다 resource패키지/templates패키지 안에..
Spring Boot - 빌드와 실행, 그리고 AOP
·
🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤/⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ
❤ 김춘장이의 위키백과 - 나만의 공부 기록 Tistory ❤ 본 포스팅은김영한선생님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술 강의를 기반으로 작성되었습니다. 빌드와 실행 빌드하고 실행할 수 있는 파일 만들기 server를 꼭 끄고 진행해야한다 해당 스프링 파일로 터미널 진입한다 명령어 ./gradlew build 빌드 파일로 진입 ls -arlth 빌드 파일 실행 java -jar jar파일명.Jar 잘 안될 경우 ./gradle clean build 해당 명령어로 진행 시 기존 빌드를 삭제하고 다시 재빌드함 AOP(Aspect Orijented Programming) C언어의 포인터 같은 느낌이다 (= 어렵다는 뜻) AOP가 필요한 상황 1. 모든 메서드의 호출 시간을..
🌱Inflearn🌱 spread연산자,얕은복사 깊은복사
·
👩🏻‍💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/⠀⠀⠀⠀ JᴀᴠᴀSᴄʀɪᴘᴛ
❤ 김춘장이의 위키백과 - 나만의 공부 기록 Tistory ❤ GitHub - gayulz/StudyHistory: 나의 공부 기록 commit 나의 공부 기록 commit . Contribute to gayulz/StudyHistory development by creating an account on GitHub. github.com spread 연산자 개념 : 하나로 뭉쳐있는 값들의 집합을 전개해주는 연산자 전개란? 값을 펼쳐준다, 배열을 한커플 벗겨주는 행위 작성법 : … 점 세개가 있으면 됨 예제 let arr = [1,2,3,4,5] console.log(arr) // [1,2,3,4,5] console.log(...arr) // 1 2 3 4 5 let str = "hello" console..
유리쯔의일상
'인프런' 태그의 글 목록