반응형

1. 배경

중요도별로 작업순서 정렬할때 필요하다.

우선순위큐를 대표적으로 구현하는 자료구조가 힙.

 

2. 우선순위큐 정의

우선순위를 가진 원소를 삽입, pop할 수 있으면 우선순위큐라고 한다.

 

3. ADT

원소삽입,

최대원소 알려주기,

최대원소 알려주면서 삭제하기.

 

4. 트리

트리 = 사이클을 만들지 않는 연결된 그래프

 

루트 = 부모가 없는노드

이진트리 = 2개이하의 자식 노드

포화 이진트리 --> 2^k -1 개인 모두다 있는 이진트리

완전 이진트리 --> 마지막 레벨 직전까지 꽉채웠고왼쪽부터 채워진것

 

힙은 완전 이진트리구조를 가져야한다.

 

5. 힙의 조건

1, 완전이진트리

2. 힙특성 : 모든 노드는 값을 갖고, 자식노드들 값보다 크거나 같다.

 

 

반응형
반응형

제어의 역전

제어 객체 관리의 권한이 넘어갔음.

(개발자에서 프레임워크로)

 

new로 객체생성하는것이아니라 spring container에 맡긴다.

 

DI wkdwja

--> 의존성 격리 --> 코드테스트 용이

dI를 통하여 불가능한 상황을 Mock으로 테스트 가능

코드 확장 변경할때 영향 최소화

순환참조 막기.

반응형
반응형

가장 큰 차이점 "테스트의 용이성", "느슨한 결합"

--> IOC의 등장

AOP

반응형
반응형

objectmapper --> getter만 갖고옴.

object -->text

obeject mapper get method 

 

 

text--> object

디폴트생성자 필요로함.

반응형
반응형

@JSONNAMING --> 일관적으로 룰 적용가능.

 

ResponseEntity -->로 답변주기.

 

JSONINCLUDE--> not null등 옵션 처리

반응형
반응형

@JSONPROPRTy --> 매핑가능

@REQUESTBODY -->JSON 파싱 가능

반응형
반응형
package com.example.demo;

import org.springframework.web.bind.annotation.*;

//해당클래스는 restapi를 처리하는 컨트롤러
@RestController
@RequestMapping("/api") // uri지정
public class ApiController {

    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }

    @GetMapping(path = "/hello2")
    public String hell2() {
        return "hello2";
    }

    @GetMapping( "/{name}")
    public String hell2123(@PathVariable(name="name") String PathName) {
        return PathName;
    }

    @GetMapping( "/{name}")
    public String hell2123qwe(@PathVariable(name="name") String PathName) {
        return PathName;
    }

    @RequestMapping(path = "/hello3", method = RequestMethod.GET)
    public String hell3() {
        return "hello3";
    }
}

그냥 겟 메소드 만드는 여러가지 방법들

 

package com.example.demo;

import org.springframework.web.bind.annotation.*;

import java.util.Map;


//해당클래스는 restapi를 처리하는 컨트롤러
@RestController
@RequestMapping("/api") // uri지정
public class ApiController {

    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }

    @GetMapping(path = "/hello2")
    public String hell2() {
        return "hello2";
    }

    @GetMapping("/{name}")
    public String hell2123(@PathVariable(name = "name") String PathName) {
        return PathName;
    }

    @GetMapping(path = "query-param")
    public String queryParam(@RequestParam Map<String, String> queryParam)

    {
        StringBuilder sb = new StringBuilder();
        queryParam.entrySet().forEach(entry ->{
            sb.append(entry.getKey() + entry.getValue());
        });


        return sb.toString();
    }

    @RequestMapping(path = "/hello3", method = RequestMethod.GET)
    public String hell3() {
        return "hello3";
    }
}
    @GetMapping(path = "query-param03")
    public String queryParam03(UserRequest userRequest)

    {
//계속 많아지니까 DTO로 매핑

        return userRequest.getName() + userRequest.getAge();
    }
    
    
    
    package com.example.demo.DTO;

public class UserRequest {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    private String name;
    private String email;
    private int age;
}

 

rest controller 안붙이면, 그냥 static에서 페이지찾음.

안그러면 @responsebody붙여줘야함.

반응형
반응형

- application properties 하위에 port설정가능

//해당클래스는 restapi를 처리하는 컨트롤러
@RestController
@RequestMapping("/api") // uri지정
public class ApiController {

    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }

}
반응형

+ Recent posts