반응형

 

Spring Boot에서 데이터를 JSON형식으로 표현하는 가장 기본적인 방법으로는 클래스를 이용하는 방법이다.

이 방법을 알아야 다음에 Deserialization한 JSON을 만들 수 있다.

 

Spring boot Json 2편, 3편, 4편, 마지막

1. 2018/11/07 - [Develop/Spring Boot] - Spring Boot Json, Gson을 이용한 JsonObject to String, String to JsonObject- JSON 2편

2. 2018/11/09 - [Develop/Spring Boot] - Spring Boot Json, Jackson을 이용한 JsonParsing - Json 3편

3. 2018/11/12 - [Develop/Spring Boot] - Spring Boot Deserialization Json, Deserialization JsonString to JsonObject - Json 4편

4. 2018/11/13 - [Develop/Spring Boot] - Spring Boot Json, hashmap to json , JsonObject 만들기- JSON 마지막

 

번외 Database의 값을 Json으로 select하는 방법.

1. 2018/10/24 - [Spring Boot] - Spring boot jpa map, hashmap, JSON형식

2. 2018/10/28 - [Spring Boot] - Spring boot JPA EntityManager를 이용한 Map형식으로 mapping하기

 

Spring boot에서 MySQL JSON 타입 SELECT하는 방법

1. 2018/11/30 - [Develop/Spring Boot] - Spring boot MySQL JSON - MySQL JSON DATA TYPE 값 가져오기

 

 

 

먼저 DTO를 생성한다.

public class TestDTO {  	private Integer id; 	private String password; 	 	 	public TestDTO() { 		super(); 	} 	public TestDTO(Integer id, String password) { 		super(); 		this.id = id; 		this.password = password; 	} 	public Integer getId() { 		return id; 	} 	public void setId(Integer id) { 		this.id = id; 	} 	public String getPassword() { 		return password; 	} 	public void setPassword(String password) { 		this.password = password; 	} 	 } 

다음 컨트롤러를 하나 생성해준다.

@RestController @RequestMapping(value = "/jsontest") public class TestClass { 	 	@GetMapping() 	public TestDTO test() { 		TestDTO test = new TestDTO(1, "1111"); 		return test; 	} 	 	@GetMapping("/2") 	public List test2() { 		List test = new ArrayList(); 		test.add(0, new TestDTO(1, "1111")); 		test.add(1, new TestDTO(2, "2222")); 		test.add(2, new TestDTO(3, "3333")); 		return test; 	} }

그리고 실행하게 되면

 

1. test() 실행화면

 

2. test2() 실행화면

 

이렇게 Json 형태로 출력된다

참고로 Map은 Json형태로 출력되지 않고 {"id" = 1, "password"="1111"} 형식으로 출력된다. List만 Json형식으로 출력된다.

또한, 이렇게 클래스로 만든 JsonObject는 Return할 때만 Json으로 출력되지, log또는 print할 경우엔 Json형식으로 출력되지 않는다.

Json형식으로 출력되게 하려면 다음에 할 2편을 참고.

 

기초는 마무리.

 

반응형
반응형


파이썬에서 beautiful soup과 같은 기능을하는 Jsoup라는 것이 있다.

Html을 파싱하는 것이고




	org.jsoup
	jsoup
	1.11.3

xml에 dependency를 추가하고



Jsoup.parse("내용").body().text();

이렇게 사용하면 각종 html코드들을 삭제한 순수 text들이 파싱된다.


기타 사용법은 라이브러리 사이트에서 확인할 수 있다

https://jsoup.org/


반응형
반응형

Python 3.7 버전을 사용하고 있는 도중 Sqlite3 를 사용하게 되었는 데, Parameterized Query(매개변수 쿼리)를 사용하는 도중


sql = "SELECT name FROM test WHERE id=?"
self.cur.execute(sql, (100))

ValueError: parameters are of unsupported type


이런 오류가 발생하였다.

레퍼런스를 찾아보니 https://docs.python.org/2/library/sqlite3.html

아래와 같이 사용해야 된다.

sql = "SELECT name FROM test WHERE id=?"
self.cur.execute(sql, (100,))


반응형
반응형

 

slacker를 이용한 파이썬 슬랙 봇을 만드는 방법이다. 순수하게 메세지만 보낼 예정이라면 아래의 웹훅을 추천한다.(봇을 이용하면 슬랙이 무거워짐),

슬랙에 봇을 추가 및 만드는 방법은 아래의 slackclient를 이용한 파이썬 슬랙봇 만들기에 나와있다.

 

- 파이썬 웹훅으로 만들기

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- slackclient를 이용한 파이썬 슬랙봇 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

1. slacker를 설치한다.

 

pip install slacker

 

 

2. 토큰을 발급받는다.

 

from slacker import Slacker  slack_token = '토큰'  #위에 발급받은 토큰을 적으면 됨. slack = Slacker(slack_token) slack.chat.post_message('#channel', '메세지') #채널자리에 슬랙에 있는 채널을 적으면 됨. 

 

위 소스를 실행하면 알아서 메세지가 잘 전달된다.

 

메세지를 예쁘게 보내고 싶으면

slack api 문서 - https://api.slack.com/docs/message-attachments 문서에서 attachments라고 나와 있는 것을 딕셔너리를 이용하여 보내면 된다.

 

dic = {"title": "Slack API Documentation", "color" : "#2eb886" }  attachments = [dic]  slack.chat.post_message('#channel', '메세지', attachments=attachments) #채널자리에 슬랙에 있는 채널을 적으면 됨. 

 

반응형
반응형

 

slackclient를 이용한 파이썬 슬랙 봇을 만드는 방법이다. 

순수하게 메세지만 보내고 싶다면 아래의 파이썬 웹훅 게시글을 보면되고

 

slackclient의 메세지를 예쁘게 보내고 싶다면 이 글을 보고 아래의 slacker로 파이썬 슬랙 봇 만들기를 보면 된다.

 

- 파이썬 웹훅으로 만들기.

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- 파이썬 slacker로 파이썬 슬랙 봇 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

1. https://api.slack.com 에 접속한 뒤, Your Apps에 들어간다.

 

 

 

2. Your Apps에 접속하면 아래와 같은 창이 바로 보이며, Create an App을 클릭한다.

 

 

 

3. 이름을 짓고 사용할 워크스페이스를 고른다.

 

 

4. BotUser를 등록한다.

 

 

 

5. 왼쪽의 OAuth & Permissions에 들어가서 bot을 install workspace를 하게되면 OAuth Token을 발급받게 되고 봇이 Slack에 추가된다.

그리고 Bot User OAuth Access Token을 복사한다.

 

 

 

 

 

6. Slack에서 봇을 사용할 채널에 /invite 명령어로 봇을 추가한다.

 

7. https://api.slack.com/tutorials/tags/python 사이트에 접속해서 사용 방법을 터득 하면되며,

대표적으로 How to Build Your First Slack Bot with Python(https://www.fullstackpython.com/blog/build-first-slack-bot-python.html)에 접속한다.

(소스 파일 : https://github.com/mattmakai/slack-starterbot/blob/master/starterbot.py)

 

소스를 대충 설명하자면, 

 

 

 

# instantiate Slack client slack_client = SlackClient(os.environ.get('SLACK_BOT_TOKEN')) #os.environ.get부분을 다 지우고 아까 복사한 token을 붙여넣는다. # starterbot's user ID in Slack: value is assigned after the bot starts up starterbot_id = None #----------------------------------- def handle_command(command, channel): #이 메소드에서 슬랙에서 받은 메세지를 처리한다. #----------------------------------- while True: command, channel = parse_bot_commands(slack_client.rtm_read()) if command: handle_command(command, channel) time.sleep(RTM_READ_DELAY) #TCP통신처럼 여기서 메세지 받는 것을 대기한다.

 

튜토리얼에서 워낙 잘 나와 있기 때문에 이해하기가 쉬우며 사용 또한 편리하다.

 

코드 및 사용방법 출저 : https://api.slack.com/tutorials/tags/python - How to Build Your First Slack Bot with Python(https://www.fullstackpython.com/blog/build-first-slack-bot-python.html)

반응형
반응형

 

 

파이썬으로 슬랙에 메세지를 보낼 수 있는 방법 중 하나인 웹훅(webhook)을 사용하는 방법이다. 

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

- Pyhton Slack Bot

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

 

1. Apps 옆의 + 를 누른다.

 

 

2. View App Directory.

 

 

3. incoming webhooks을 검색 하고 Add한다.

 

 

 

4. 메세지를 보낼 채널을 선택한다.

 

 

5. 아래의 Webhook URL을 복사한다. 그 밑에는 웹훅 사용법이 적혀있다.

 

 

 

6. 파이썬에 아래의 코드를 사용하여 보낸다.

 

requests.post 함수와 Json형태의 메세지를 통해 보낸다.

import json import requests   def main():      webhook_url = "복사한 url"     content = "WebHook Test"     payload = {"text": content}      requests.post(         webhook_url, data=json.dumps(payload),         headers={'Content-Type': 'application/json'}     )   if __name__ == '__main__':     main() 

 

 

7. 결과

 

 

반응형
반응형


파이썬 의존성 라이브러리 관리를 위한 requirements.txt 추가.

터미널에 아래와 같이 치면 된다.


pip freeze > requirements.txt


반응형
반응형

Spring Boot 에서 TimeZone 설정하려면 아래와 같이 @PostConStruct를 설정해주면 된다.

 

 @SpringBootApplication public class Application {  	@PostConstruct 	void started() { 		TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul")); 	}  	public static void main(String[] args) { 		SpringApplication.run(Application.class, args);  	}  } 

UTC를 원한다면 TimeZone.getTimeZone("UTC")라고 하면 된다.

 

시간을 KST로 설정하고싶어서 TimeZone.getTimeZone("KST")라고 계속 했는데 안되서 삽질한 경험이 있다. KST라고하면 안되고

한국 시간 설정은 Asia/Seoul로 설정해주면 된다.

 

그 외 example timezone offset은 아래의 사이트에서 확인할 수 있다.

https://docs.oracle.com/javase/tutorial/datetime/iso/timezones.html

반응형
반응형


쿼리 작업할 때 count라는 컬럼을 업데이트 해줘야 하는 일이 발생했는데 아래와 같이 하면 자꾸 에러가 발생하였다.

update Test set count=?1 where id=?2


오랜 삽질 끝에, 혹시나 count가 mysql에서 예약어로 사용되고 있어서 그런가 하는 생각에 아래와 같이 바꿔보니 성공하였다.
 

update Test t set t.count=?1 where t.id=?2


앞으로 컬럼의 이름과 MySQL의 예약어가 겹치는 게 있는지 주의하자.

반응형
반응형

apache 에는 ab 라고 하는 벤치마크 툴이 있으며, 이 ab를 이용하면 서버의 성능을 테스트해 볼 수 있다.
test@:~$ sudo apt-get update 
test@:~$ sudo apt-get install apache2-utils

ex) test@:~$ ab -n 100 -c 1 http://서버주소/
※ 주의 요청 주소 앞에 항상 http와, 서버주소 뒤에는 항상 / 를 꼭 적어주어야 한다.

위 예시는 요청을 100번 주고 동시접속을 1번 하곘다는 예시이다. 도중에 ctrl+c를 통해 종료시킬 수도 있다.


반응형

+ Recent posts