분류 전체보기 31

클라이언트에서 서버로 데이터 전송 / HTTP API 설계

인프런 모든 개발자를 위한 HTTP 웹 기본 지식 섹션 5 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지로 나뉨 쿼리 파라미터를 통한 데이터 전송 -GET / 주로 정렬 필터(검색어나 정렬 조건 등) 메세지 바디를 통해 데이터 전송 -POST,PATCH,PUT / 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황으로 나눠 살펴보자 정적 데이터 조회 예를 들어 이미지 요청이 이에 해당하는 경우이다. 이미지 요청 시(GET 사용) 서버는 해당 경로(ex-static/star.jpg)의 이미지를 만들어 다시 전송하면 되기에 쿼리파라미터를 사용하지 않고 단순 리소스 경로로 조회 가능. 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터에 사용. 조회 시 GET + 쿼리 파..

스프링 2023.05.15

HTTP API 설계

인프런 강의 정리 - 모든 개발자를 위한 HTTP 웹 기본 지식 섹션 4 [회원 정보 관리 API 설계] 설계에 앞서 요구사항이 회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제라고 하자. URI설계 시 예를 들어 회원 조회 -> /search-member-by-ID 와 같은 식으로 설계할 수 있는데 이는 좋은 URI라고 할 수 없다. 좋은 URI 설계란 -가장 중요한 것은 리소스 식별이다. **최근에는 리소스가 아닌 representation으로 부름 리소스란? -> 회원이라는 개념이 리소스이다. 수정이나 등록은 리소스가 아니기에 리소스 식별을 위해서는 회원이라는 리소스만 식별하면 된다. (등록, 수정, 조회를 배제하고) =>회원 리소스를 URI에 매핑 이에 따라 다시 URI 설계를 해..

스프링 2023.05.15

더미데이터 반영하기

>더미데이터를 RDS에 반영시켜주기 다음으로 더미데이터를 rds에 반영시켜줄건데 https://chobopark.tistory.com/177 이 사이트를 참고했다.. *더미데이터란 - 유용한 데이터가 포함되지 않지만 공간을 예비해두어 실제 데이터가 명목상 존재하는 것처럼 다루는 유순한 정보라고 한다. 방법 1의 코드를 내 테이블에 맞게 수정해주었다. 테이블명, 속성명과 속성 타입에 맞게 들어가는 값도 수정해줘야 한다. DELIMITER $$ DROP PROCEDURE IF EXISTS loopInsert$$ CREATE PROCEDURE loopInsert() BEGIN DECLARE i INT DEFAULT 1; WHILE i

UMC 2023.05.14

RDS

💡UMC 4주차 과제는 - 3주차 과제에 설계한 당근마켓 erd를 rds에 반영하기 - 데이터그립을 통해 구축된 rds에 접근하기 - 더미데이터 생성해 rds반영하기 >ERD를 export해서 구축된 RDS에 반영하기 당근마켓 일부를 erdcloud를 이용해 erd 설계를 해보았다. 원래 기존에 사용한 경험이 있던 draw.io를 이용해 erd를 설계해주었지만 draw.io는 sql 생성해주는 기능이 없다. 그래서 sql문으로 export를 하는 기능이 있는 erdcloud가 sql을 직접 작성할 필요가 없어서 좋음! sql문을 export해주고 전에 사용했던 datagrip에 접속해서 생성해놓은 DB에 sql문을 넣어주고 실행시키면 된다. 오류를 만났는데 전에 만들어놨던 DB라서 [3D000][1046..

UMC 2023.05.01

AWS RDS 인코딩, 타임존

이제 RDS 인코딩, 타임존 설정을 하기 위해 먼저 파라미터 그룹 설정을 해줘야 한다. RDS > 파라미터 그룹에 들어가서 파라미터 그룹 생성 클릭해주고 파라미터 그룹패밀리는 아까 DB를 생성한 버전과 같이 MYSQL8.0을 선택해준다. 그룹 이름과 설명은 임의로 설정해줬다. 생성 클릭하면 기본 그룹과 함께 방금 생성한 파라미터 그룹을 확인할 수 있다. 생성한 그룹 이름을 클릭하면 아래의 화면이 보인다. 타임존을 설정해줄 것이기 때문에 time_zone을 검색해준다. 세번째로 검색되는 time_zone을 ASIA/SEOUL로 설정해주기 위해 상단 우측의 파라미터 편집을 클릭! 아래 사진처럼 Asia/Seoul을 선택하고 변경사항을 저장하면 된다 ->타임존 설정 끝! 이제 인코딩을 설정해주어야 하는데 *인..

UMC 2023.04.14

AWS RDS 구축, 인코딩, 타임존 설정 및 적용

AWS RDS 구축, 인코딩, 타임존 설정 및 적용을 해보자! RDS 대쉬보드에서 database 생성 클릭! 학습을 위한 것이므로 표준 생성을 선택하고, MySQL을 선택해주고 버전은 2023.04 기준 가장 최신 버전이기도 하고 설치된 mysql 버전이 8.0.32이기 때문에 MYSQL 8.0.32을 선택해주었습니다. 자신의 로컬서버에 맞게 설치하면 됩니다 템플릿은 회원가입을 하고 1년동안은 프리티어 사용이 가능하기 때문에 프리 티어를 선택해줍니다 ~ DB인스턴스 식별자, 마스터 이름, 암호를 입력합니다 퍼블릭 액세스를 예로 변경해줍니다. 다른 것은 사진과 같이 기본 설정으로두었습니다. 이후 하단의 데이터베이스 생성을 클릭해주면 DB 생성 상태를 확인할 수 있는 페이지로 이동합니다. 생성 직후에 확인..

UMC 2023.04.14

UMC 1주차 워크북 개념 정리

Server & Client 서버와 클라이언트의 관계는 무엇인가요? 클라이언트가 서버에게 서비스를 요청하면 서버는 클라이언트에게 서비스를 제공한다. 서버는 서비스를 제공하는 컴퓨터이고, 클라이언트는 서비스를 제공받는 컴퓨터 한번 서버는 영원한 서버일까요? 아니다. 서버와 클라이언트는 고정적이지 않고 상대적인 개념이다. 상황에 따라 바뀔 수 있고, 해당 컴퓨터가 서비스 제공시에는 서버, 제공 받으면 클라이언트가 된다. 즉, 역할로써 부여된다. 서버의 역할 및 기능이 무엇일까요? 서버는 요청을 받으면 이를 처리하여 응답, 제공하는 역할을 하고 클라이언트의 요청을 통해 서비스를 제공한다. OS(운영체제) 운영체제란 무엇일까요? 컴퓨터를 동작시키는데 도움을 주는, 컴퓨터 HW 위에 설치되는 소프트웨어. 하드웨어..

UMC 2023.04.02

복습 / 정리

*인프런 김영한 강사님의 강의를 수강하고 정리한 것입니다* 1. 객체지향 설계와 스프링 1)스프링 프레임 워크, 스프링 부트 *스프링 프레임 워크(가장 중요) -핵심 기술(모든 라이브러리들이 활용하는 스프링의 가장 핵심) : 스프링 DI 컨테이너, AOP, 이벤트, 기타 🟡 -웹 기술 ,데이터 접근 기술(DB에 접근),기술 통합 ,테스트, 언어 : 코틀린, 그루비 => 이를 통합한 것을 스프링 프레임 워크라고 한다. 최근에는 스프링 프레임 워크를 편리하게 사용할 수 있게 하는 스프링 부트 많이 사용 *스프링 부트 -스프링 편리하게 사용할 수 있게 지원, 최근에는 실무에서 스프링 부트 기본으로 사용. -단독 실행 가능한 스프링 애플리케이션 쉽게 생성, Tomcat 같은 웹서버를 내장해서 별도의 웹 서버 설..

싱글톤 컨테이너

// 지금까지 쭉 사용해왔던 방식 스프링은 싱글톤 패턴의 단점 해결하면서도 객체 인스턴스를 싱글톤으로 관리한다. (->코드 깔끔(@annotation사용), Solid위반 X, 코드 유연, private 생성자 X) 스프링 컨테이너는 싱글톤 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리하는데 기존 컨테이너 생성과정을 생각해보면 객체가 하나만 생성된다. 스프링 빈이 바로 싱글톤으로 관리되는 빈 ->@Bean을 호출해 빈 객체를 미리 등록해(객체 미리 생성해) 관리해줌. 조회해도 1개만 생성된거 확인 가능. 스프링 컨테이너는 싱글톤 컨테이너의 역할을 하고, 싱글톤 객체를 생성/관리하는 기능을 싱글톤 레지스트리라고 함. 위에서 사용한 싱글톤 패턴 코드가 하나도 없음. 클라이언트가 요청시마다 동일한 객..