기타

· 기타/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, ..
· 기타
간단하게 내린 정의 폭포수 개발 프로세스를 단계별로 나누고 각 단계를 완전히 마무리 지은 후에 다음 단계로 넘어가는 방법론 각 단계에 대한 산출물도 다음 단계로 넘어가기 전에 완성한다. 가장 고전적인 방법론이고 적용 사례도 가장 많다. 애자일 개발 프로세스를 짧게 잡아서 릴리즈를 계속해서 반복하는 방법론 소규모 릴리즈를 하며 사용자들의 피드백을 빠르게 반영할 수 있다. 스프린트를 반복하면서 회고를 반복한다. 개발팀이 특정 주기동안 얼마나 기능 구현을 완료할 수 있는지 자연스럽게 측정할 수 있다. 내가 더 선호하는 것? 기능을 세분화해서 구현해나가며 점점 프로젝트를 키워나가는 걸 좋아하기도 하고 사용자 피드백을 빠르게 반영할 수 있다는 점에서 애자일을 더 선호한다. 설계 vs 개발 무엇이 더 중요할까? 어..
· 기타/TIL
📚 KEYWORD인터페이스implements 라는 키워드에서 볼 수 있듯이, 구현해야 하는 공통적인 규약기능 자체보다는 규약에 초점을 둔다. APIApplication Programming Interface데이터가 있고 클라이언트가 있을 때클라이언트가 원하는 형태로 데이터를 잘 조합해서 상호작용할 수 있게 하는 인터페이스각자의 접근 권한에서 필요한 것만 연계하기 라는 말이 좋았다.꽃으로 예를 들면 꽃들이 있고 클라이언트가 필요한 정보를 꽃다발로 주문 했을 때 전달해주는 꽃집 직원과 같다고 할 수 있다. 참고 : API란? API의 정의와 종류 그리고 장단점 JAVA COLLECTIONCollectionList - ArrayList, Vector, LinkedListSet - HashSet, TreeSe..
· 기타/TIL
📚 KEYWORD 타입 변환 타입을 강제로 변환할 수 있다. 부모에서 자식 클래스의 메서드를 사용하고 싶을 떄 Parent parent2 = new Child(); parent2.method(); // 자식 // parent2.metod(); // 오류 Child child2 = (Child) parent2; child2.metod(); // 동작 추상클래스 추상메소드를 1개 이상 선언한 클래스 추상메소드 구현 내용이 없이 텅 비어있는 메소드 자식에서 오버라이딩하여 구현할 수 있다. 다형성(= 하나의 객체가 여러 가지 타입을 가질 수 있는 것)을 위해 주로 사용하곤 한다. abstract class Recipe { abstract void getInfo(); } 인터페이스 모든 메서드가 추상 메소드인 일..
· 기타
페어 프로그래밍 (Pair Programming)정의애자일 소프트웨어 개발 방법에 속하며, 하나의 컴퓨터로 두 프로그래머가 짝을 이루어 2교대로 작업한다.코드를 작성하는 사람(진행자, driver)관찰자(observer, navigator)관찰자는 코드 검토(code review)를 담당한다.관찰자는 진행자가 코딩하는 부분을 같이 보며 자신이 떠올린 방향, 좋은 아이디어, 해결법 등을 제시하여 호율을 증대시킨다.보통 25 ~ 30분 코딩 + 5 ~ 10분 휴식 주기를 반복한다.장단점👍🏻 장점다른 사람의 코딩 스타일 방향을 맞추는 등 협동성을 기를 수 있다.숙련자 - 초보자 뿐만 아니라 비슷한 능력자끼리도 가능하다.페어의 관점까지 보면서 사고를 넓힐 수 있다.마찬가지..
김꿍디꿍디
'기타' 카테고리의 글 목록 (2 Page)