Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt Go reflect package #700

Closed
jihoon-seo opened this issue Sep 1, 2021 · 5 comments
Closed

Adopt Go reflect package #700

jihoon-seo opened this issue Sep 1, 2021 · 5 comments
Labels
enhancement New feature or request

Comments

@jihoon-seo
Copy link
Member

@seokho-son referred the Go reflect package. ๐Ÿ˜Š

What would you like to be enhanced
:
Adopt Go reflect package

Why is this needed
:
TbSpecInfo struct์˜ ํ•„๋“œ ์ด๋ฆ„์„ string ์œผ๋กœ ์กฐํšŒํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ์žˆ์Œ

if orderBy == "numvCPU" {

Proposed solution
:
=> const StrNumvCPU string = "numvCPU" ์™€ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ , reflect๋„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Œ

@jihoon-seo jihoon-seo added the enhancement New feature or request label Sep 1, 2021
@seokho-son
Copy link
Member

์˜ˆ์ œ ์ฝ”๋“œ: https://play.golang.org/p/CGzM28ibuk4

์ข‹๋„ค์š”.. ใ…Žใ…Ž

๊ทผ๋ฐ ์ด ์˜ˆ์ œ๋กœ ํ™œ์šฉํ•˜๋ ค๋ฉด json tag๊ฐ€ ํ•„์š”ํ•˜๋ ค๋‚˜์š”.

@jihoon-seo
Copy link
Member Author

์˜ˆ์ œ ์ฝ”๋“œ์—์„œ
struct ์ •์˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋‹ˆ

type Person struct {
	Name   string //`json:"name"`
	Nation string `json:"country"`
	Zip    int    `json:"zipCode"`
}

json ํƒœ๊ทธ๋Š” empty ๋ผ์„œ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Š

Type: *main.Person
Name		string		==>		JohnGrib, json:           
Nation		string		==>		Korea, json:    country
Zip		int		==>		12345, json:    zipCode

@seokho-son
Copy link
Member

์ด๋Ÿฐ๊ฑฐ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฒฐ๊ตญ json tag ๋ฅผ ์‚ด๋ ค์•ผ ํ•˜๋Š” ๊ฑธ๊นŒ์š”.. ใ… ใ… 

@jihoon-seo
Copy link
Member Author

์œ„์˜ ์˜ˆ์ œ์—์„œ๋Š”, struct field์— JSON tag๊ฐ€ ๋ช…์‹œ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ JSON ํƒœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.


JSON tag๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด,
ํ˜„์žฌ CB-Spider๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด
JSON marshal, unmarshal, bind ๊ฐ€ ๋ณ„ ๋ฌธ์ œ ์—†์ด ๋  ๊ฒƒ์œผ๋กœ ์ถ”์ธก๋ฉ๋‹ˆ๋‹ค. ๐Ÿ˜Š
(๋‹ค๋งŒ, ํ˜„์žฌ TB ์†Œ์Šค์—์„œ ๊ฐ struct field์˜ JSON ํƒœ๊ทธ๋ฅผ '์ฒซ๊ธ€์ž๋ฅผ ์†Œ๋ฌธ์žํ™” ํ•œ ๊ฒƒ' ์œผ๋กœ ๋ช…์‹œํ•˜๊ณ  ์žˆ๋Š”๋ฐ,
TB ์†Œ์Šค์—์„œ JSON tag๋ฅผ ์‚ญ์ œํ•˜๋ฉด,
TB REST API call ์‹œ์— JSON field ์ฒซ๊ธ€์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋˜ ๊ฒƒ์ด ๊ณ„์† ๋ฌธ์ œ์—†์ด ๋™์ž‘ํ• ์ง€
์•„๋‹ˆ๋ฉด struct field ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ•˜์—ฌ ํ˜ธ์ถœํ•ด์•ผ ํ• ์ง€๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.)

@seokho-son
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants