전체 글

Create React App 로 시작하기npx create-react-app my-appcd my-appnpm run start Vite 로 시작하기npm create vite@latest my-app -- --template reactcd my-appnpm installnpm run devCRA vs ViteCRA 보다 Vite를 사용했을 때 프로젝트 생성 + 패키지 설치 속도가 훨씬 빠르다. 자세한 비교는 아래 글을 참고!  [React] 리액트 프로젝트 생성 - Create React App 보다 더 빠른 Vite 사용하기보통 리액트에서 간단한 프로젝트를 생성하기 위해 가장 많이 사용하는 것은 Create React App 즉 CRA다. 그러나 CRA는 단점이 있는데, 바로 속도가 느리다는 것이다..
· 기타/TIL
📚 KEYWORD큐잉 [네트워크 디자이너 기본기 쌓기] ② 큐잉 이론과 네트워크 모델링데이터 통신과 네트워크 디자인을 희망하는 사람이라면 누구나 알아야 하는 테크닉이 바로 큐잉 이론입니다. 전산학을 비롯한 거의 모든 컴퓨터 네트워크와 통신 분야의 디자이너들에게 큐잉zdnet.co.kr쇼핑몰 도메인 API 설계 : 모든 기능을 나열한 후 특정 부피로 분류하기상품Create : 상품 등록상품 개별 등록 : URL에 id 넣지 않기 주의 Read : 상품 조회상품 전체 조회 : 개수 (paging)상품 카테고리별 조회 : 카테고리, 개수상품 개별 조회 : 자세히 Update : 상품 수정 (난이도 있어서 나중에 하는 것을 추천)상품 개별 수정 : 데이터 수정상품 여러 개 수정 : 판매 상태 (품절, 판매 중..
· 기타/TIL
📚 KEYWORD@ResponseBody 역직렬화 원리 🤔 THINKQ. 컨트롤러 분리하는 이유 모든 컨트롤러의 역할을 한 개의 컨트롤러가 하게 된다면에러가 1개만 발생하더라도 컨트롤러가 작동을 하지 못하게 되므로 Controller -> ProductController, MemberController ...이런 식으로 도메인별로 분리를 하는 게 좋다 👍🏻 Q. @RequestBody 를 사용하여 데이터를 넘겨줄 때 왜 객체로 넘겨줄까? 보내야 할 파라미터가 10개면 10개 따로따로 보내야 하는 귀찮음을 덜 수 있다. 객체를 생성하여 setter 등에서 값을 검증해서 잘못된 데이터를 보낼 가능성이 적어진다. 💬 ETC리팩토링= 클린 코드 만드는 방법 1. 모든 클래스에서 같은 의미를 가지는 동사..
· 기타/TIL
📚 KEYWORDSpring의존성 주입 방법 3가지Setter : 변경될 가능성이 있다는 단점 & 순환 종속성 필드 :  테스트 코드 는 의존성 주입을 스프링이 하지 않고 내가 직접 할 수 있어야 한다는 단점 생성자 : 세터의 단점을 보완하여 불변성을 지니고, 필드의 단점을 보완해 외부 접근이 가능하다.@Repository, @Service, @Controller 요청을 받을 때 데이터도 같이 받는 방법@RequestParam  @RequestBody : 역직렬화(JSON -> Java 객체, String, Map 필드 1:1 맵핑)  StringJava 객체 Map @PathVariable REST APIAPI 명세 기본 틀URL 규칙 1. 영어 소문자 2. 언더바 X 하이픈 O 3. URL 끝에 슬..
· 기타/TIL
📚 KEYWORDSpring빈으로 등록하는 방법@Component@Configuration + @Bean컨트롤러 @Controller@RestController@Controller + @ResponseBody 🤔 THINK빌드 vs 컴파일컴파일: 소스코드를 바이너리 코드로 변환해서 목적 파일 생성C언어 : .c → .obj (바이너리 코드 - CPU가 이해하는 코드)자바 : .java → .class (바이트 코드 - 가상 머신이 이해하는 코드)링크: 여러개로 분리된 소스파일들을 컴파일한 결과물들에서 최종 실행가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해주는 작업빌드: 소스코드 파일을 실행가능한 산출물로 만드는 과정 (컴파일 + 링크)소스코드 vs 바이너리 코드 vs 바이트코드소스 코드 = ..
· 기타
build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' compileOnly 'org.projectlombok:lombok'} 라이브러리 앞에 붙은 keyword들은 각 라이브러리들이 적용될 범위(scope)를 뜻한다. * 공식 사이트https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_configurations_graph The Java Library Plugin..
· 기타/TIL
📚 KEYWORD프레임워크 : 하나의 틀 안에서 어떤 서비스를 완성할 수 있는 것 Spring : 웹을 완성할 수 있는 프레임워크 웹서버 : 정적 = 누가 들어가도 동일한 부분 (ex. 회사 소개 페이지)WAS : 동적 = 내가 사용하는 모든(?) 페이지 Spring 주요 개념 IoC(Inversion Of Control, 제어의 역전) : 객체를 제어하는 제어권을 내가 가지고 있었는데 상황이 180도 바뀌어서(=역전) 스프링이 가지게 되었다.  DI(Dependency Injection, 의존성 주입) : 객체를 주입하는 것, 주입 당하는 것, 주입 요청 하는 것 Spring Bean : 할 일이 많은 객체, 누군가가 나를 들고 다닐 수 있는 객체 = Bean => Spring아 이 객체 지금부터 니..
· 기타
목표페어가 생각할 여지를 남겨둘 수 있도록 하기 (너무 한 줄 한 줄 읊지 않기) 나의 논리를 페어가 알아들을 수 있도록 말하기이전 페어 프로그래밍2024.04.05 - [기타] - [페어 프로그래밍] 버블 정렬(Bubble Sort) 구현하기 [페어 프로그래밍] 버블 정렬(Bubble Sort) 구현하기페어 프로그래밍 (Pair Programming)정의애자일 소프트웨어 개발 방법에 속하며, 하나의 컴퓨터로 두 프로그래머가 짝을 이루어 2교대로 작업한다.코드를 작성하는 사람(진행자, driver)관찰자(observer,ggungdi-dev.tistory.com선택 정렬 구현하기with 별하님 코드#includeusing namespace std;int main() { int a[] = { 10, 9, ..
REST : HTTP, URI, 자원 명시, HTTP 메소드, CRUD 명령 적용 기술 형상통제위원회 (CCB, Configuration Control Board) : 형상 항목, 심의 조직ESB (Enterprise Service Bus) : 기업 운영 서로 다른 플랫폼, 하나의 시스템으로 관리 및 운영, 서비스 중심 통합 아키텍쳐SOAP(Simple Object Access Protocol) : HTTP, HTTPS, SMTP 등을 사용, XML 기반의 메시지, 네트워크 상태에서 교환하는 프로토콜 디스크 스트라이핑(Disk Striping) : 성능 향상, 데이터를 1개 이상의 디스크 드라이브에 저장, 드라이브를 병렬 사용할 수 있는 기술백본망(Backbone Network) : 다양한 네트워크 상호..
구조Reuest : Client가 Server로 Request를 보낸다.ReponseServer은 Client로부터 Response를 받는다.Request를 처리한다.Resources에서 data를 가져와 Client에게 Response를 전달한다.RequestStart LineHTTP Method, Request target, HTTP version으로 구성GET /test.html HTTP/1.1[HTTP Method] [Request target] [HTTP version] * HTTP Method : 요청의 의도를 담고 있는 GET, POST, PUT, DELETE 등이 있다.- GET : 존재하는 자원에 대한 요청- POST : 새로운 자원을 생성- PUT : 존재하는 자원에 대한 변경- DEL..
김꿍디꿍디
김꿍디의 개발 블로그