티스토리 뷰

728x90
반응형

 

1. API

 

api 요청 방법

 

주소

https://openapi.naver.com/v1/search/shop.json

주소 뒤에 ?랑 &를 사용한다.

? 뒤부터는 주소는 아니고 전달하는 요소라고 알려주는것이다. &는 and 역할을 한다.

https://openapi.naver.com/v1/search/shop.xml?query=%EC%A3%BC%EC%8B%9D&display=10&start=1&sort=sim"

헤더에는 api client Id와 client secret를 넣어서 보내주면 응답을 받을 수 있다.

 

 

2. org.json

 

JSON을 자바에서 다루기 위해, JSONObject, JSONArray 클래스가 필요하다.

Maven repository 사이트에서 org.json 라이브러리를 gradle 버전으로 임포트해서 사용하면 된다.

 

JSONObject안에 값을 추출하여 사용할 수 있게 바꾸기

 

문자열 정보를 JSONObject로 바꾸기

JSONObject rjson = new JSONObject(result);

JSONObject에서 items 배열 꺼내기

JSONArray items = rjson.getJSONArray("items");

JSONArray로 for문 돌기

for (int i=0; i<items.length(); i++) {
	JSONObject itemJson = (JSONObject) items.get(i);
	System.out.println(itemJson);
}

JSONObject에서 String, int 데이터 뽑기

String title = itemJson.getString("title");
int lprice = itemJson.getInt("lprice");

검색결과 문자열을 JSONObject를 통해 List로 추출하는 전체코드

public List<ItemDto> fromJSONtoItems(String result){
        JSONObject rjson = new JSONObject(result);
        JSONArray items = rjson.getJSONArray("items");

        List<ItemDto> itemDtoList = new ArrayList<>();

        for (int i=0; i<items.length(); i++) {
            JSONObject itemJson = (JSONObject) items.get(i);
            ItemDto itemDto = new ItemDto(itemJson);
            itemDtoList.add(itemDto);
        }

        return itemDtoList;
    }

 

3. Spring Bean

 

Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다. Spring의 Bean을 정리하면 아래와 같다.

  • POJO (Plain Old Java Object) 로써 Spring 애플리케이션을 구성하는 핵심 객체이다.
  • Spring IoC 컨테이너 (또는 DI 컨터이너)에 의해 생성 및 관리된다.

기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 번거로워 져서 어노테이션을 활용한 Bean 등록 방법이 탄생하게 되었다.

 

Spring Bean 등록방법 (@Bean, @Configuration, @Component)

 

  • @Bean, @Configuration

개발자가 직접 제어가 불가능한 외부 라이브러리 또는 설정을 위한 클래스를 Bean으로 등록할 때 @Bean 어노테이션을 활용한다. 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 Configuration을 명시해 주어야 한다.

 

  • @Component

개발자가 직접 개발한 클래스를 Bean으로 등록하고자 하는 경우 @Component 어노테이션을 활용

 

 

4. EC2 / RDS

 

EC2

아마존 일래스틱 컴퓨트 클라우드(Amazon Elastic Compute Cloud, EC2)는 아마존닷컴의 클라우드 컴퓨팅 플랫폼 아마존 웹 서비스의 중앙부를 이루며, 사용자가 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행할 수 있게 한다.

 

RDS

아마존 관계형 데이터베이스 서비스(Amazon Relational Database Service)또는 아마존 RDS(Amazon RDS)는 아마존 웹 서비스(AWS)가 서비스하는 분산 관계형 데이터베이스이다.

 

애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순케 하도록 설계된 클라우드 내에서 동작하는 웹 서비스이다.

 

데이터베이스 소프트웨어를 패치하거나 데이터베이스를 백업하거나 시점 복구를 활성화하는 것과 같은 복잡한 프로세스들은 자동으로 관리된다.

 

 

EC2에 DB를 직접 설치하여 서비스하는것과 EC2와 RDS를 같이 사용하는 것에 대한 큰 차이는 따로 없는것 같고

RDS를 사용하면 알아서 관리를 해주는 대신 돈을 받아가는것 같다.

 

 

5. 리눅스 명령어

 

  • ls : 내 위치의 모든 파일을 보여준다.
  • pwd : 내 위치(폴더의 경로)를 알려준다.
  • mkdir : 내 위치 아래에 폴더를 하나 만든다.
  • cd [갈 곳] : 나를 [갈 곳] 폴더로 이동시킨다.
  • cd .. : 나를 상위 폴더로 이동시킨다.
  • cp -r [복사할 것] [붙여넣기 할 것] : 복사 붙여넣기
  • rm -rf [지울 것] : 지우기
  • sudo [실행 할 명령어] : 명령어를 관리자 권한으로 실행한다.
  • sudo su : 관리자 권한으로 들어간다. (나올떄는 exit로 나옴)

git bash 사용하여 AWS EC2에 접속하기

ssh -i [키페어] ubuntu@[ec2ip]

 

jar파일이 EC2에 올라와있을 경우 실행시키는법

java -jar [JAR파일명].jar

 

포트포워딩

주소를 입력할때 항상 뒤에 포트번호를 적었었는데 http요청 기본포트가 80포트이고 기본포트는 생략 가능하기 때문에 80포트로 바꾸면 뒤에 포트번호를 안적어줘도 되게된다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 

nohup

git bash를 종료하면(=즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않고 있다. 그러나 우리가 원격접속을 끊어도, 서버는 계속 돌아가게 실행시키는 방법이 nohup이다.

nohup java -jar JAR파일명.jar &

 

이렇게 서버를 돌리게 되면 ssh접속을 종료해도 돌아가기 때문에 종료방법이 따로 있다.

# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep java

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

 

 

 

 

Reference


mangkyu.tistory.com/75

 

[SpringBoot] @Bean, @Configuration, @Component 어노테이션

기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션(Annotation, @)를 활

mangkyu.tistory.com

 

devjjo.tistory.com/31

 

[AWS] EC2 / RDS 란?

EC2 / RDS 란? EC2 - 아마존 일래스틱 컴퓨트 클라우드(Amazon Elastic Compute Cloud, EC2)는 아마존닷컴의 클라우드 컴퓨팅 플랫폼 아마존 웹 서비스의 중앙부를 이루며, 사용자가 가상 컴퓨터를 임대 받아

devjjo.tistory.com

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28