전체 글

· 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..
📚 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..
소프트웨어 구축소프트웨어 생명주기(V-모델)답:a. 단위 테스트b. 통합 테스트c. 시스템 테스트d. 인수 테스트해설:- 단위 테스트 (Unit Test) : 최소 단위(모듈/컴포넌트) 기반 테스트ex. 인터페이스 테스트, 자료구조 테스트, 수행경로 테스트- 통합 테스트 (Integration Test) : 단위 테스트 후 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법ex. 하향식 테스트, 상향식 테스트- 시스템 테스트 (System Test) : 개발된 SW의 컴퓨터 시스템 내 작용여부 점검, 실제 사용 환경과 유사한 테스트 환경ex. 블랙박스 테스트, 화이트박스 테스트- 인수 테스트 (Acceptance Test) : 사용자의 요구사항 충족 여부 확인ex. 알파 테스트, ..
이론DB 설계 답:요구조건 분석 개념적 설계 논리적 설계 물리적 설계 구현해설:DB는 개논물스키마는 내개외참고 : https://newbt.kr/%EB%AC%B8%EC%A0%9C/56459무결성(Integrity)답:참조해설:- 개체 무결성 : 기본키 컬럼이 테이블에 존재해야 함- 참조 무결성 : 다른 테이블에 참조하는 값이 일관되게 존재- 도메인 무결성 : 도메인에 맞는 데이터인지 검증참고 : https://newbt.kr/%EB%AC%B8%EC%A0%9C/56489관계형 데이터베이스 용어 답:1. 튜플2. 릴레이션 인스턴스3. 카디널리티해설:- 릴레이션 인스턴스 : 릴레이션에 실제로 저장된 데이터 집합- 속성(Attribute) = 열 = 필드 / 튜플(Tuple) = 행..
김꿍디꿍디
꿍디의 개발 일기