티스토리 뷰

Log/.TIL

[TIL]180102-0108

가그린민트 2018. 1. 8. 22:18

1 / 8 (월)

1. ...

브라이언이 API 개발, 내가 DevOps로 Role을 잡고 진행하였고, 초기에 CI / CD 구성 후에 개발이 완료되기까지는 내 리소스가 크게 없을거라 예상했다. 실제로도 나는 모델링 및 인증 등 API 개발을 진행전에 네비게이터하는 것만 할 뿐이고 대부분의 개발은 브라이언이 진행했고, 개발이라면 메일인증관련 부분과 더미 컨트롤러 정도? 그 외엔 테스트를 위한 데이터 확보 및 DB 작업, 일종의 PM 역할정도만 하고, 앞으로도 중간중간 아키텍처와 관련있을 부분들(S3 - 이미지 업로드 및 리사이징, Spring Session - redis (ELB 구현 고려시)) 정도나 웹 방화벽(modsecurity), TLS, DNS 작업정도만 있을거라.. 그래서 리소스가 남으면 모니터링 툴이나 붙여볼까도 생각했었는데.. (check_mk + scouter)

그런데 데이터 셋 명세하고 보니 프론트쪽은 말할 것도 없고, 백엔드 쪽도 dto 작업량이 상당해졌다. 인증관련 부분은 지금도 spring session + redis로 해야하는 것인지 cognito + elasticcache를 써야 하는 것인지.. 고민이 많다. 이미 구현한 spring security 에 resource server 만들어서 JWT를 내리는게 나을 것 같기도 한데, 수요일까지 테스트해보고 브라이언에게 공유해야겠다.

그 외에 강좌시간 validation이나 New Flag, 그리고 구글 차트 관련한 부분에 대한 작업도 해야겠고.. 흐응 



1 / 4 (목) ~ 7 (일)

1. 주소 데이터.. 하아..

처음에 구글 API를 썼었는데, 우리가 직접 지번 주소 검색 API를 만들기로 했던 것은.. 지역명외의 정보를 요청하는 것에 대해 필터를 하는 것이 힘들 것이라는 의견이 있었기 때문이다. 그래서 처음엔 전국 학원에 대한 정보는 Neis에 있으니 이를 기준으로 카카오 API에 질의하고 나온 값들을 가공하여 사용하면 되겠거니 생각했다. 그런데 학원에서 직접 입력한 주소다보니 각 종 오타에 규칙도 다르고, 심지어 지역마다 문서 양식도 다르다. ㅡㅡ. 어쨋든 어떻게어떻게 데이터를 가공해서 FE팀 테스트를 위한 더미 컨트롤러 작성 후 서버를 따로 구성했다.

그런데. 생각해보니 국토정보공사 다니는 녀석이 생각남 (머리가 멍청하면 몸이 고생한다고..ㅡㅡ^) 역시나 법정동 코드가 따로 있다.(공공데이터 공개하는 사이트와는 다른 곳에..;;) 그런데 이걸 그대로 믿고 가공해서 올렸더니.. 아 .. 행정동이라는게 또 있네.. ㅡㅡ

결론은 법정동과 행정동은 ManyToMany 관계이고 이를 Unique한 값만 정제해서 사용하는게 지번검색만 놓고보면 베스트일 수 있겠으나.. 지역기준으로 학원 검색하는 부분에서 경 / 위도로 검색하는 것은 많이 어려운 부분이고, 이를 제대로 구현하려면, 

1) ManyToMany관계 매핑 후 2) 고유 index를 부여하고, 3) 시, 군/구 에 대한 키값은 별도로 부여하여 학원 정보가 이들을 모두 들고 있어야 하며, (동마다 포함관계가 다르니.. 예를들면 대치4동(행정동,one) - 대치동(법정동,many) / 안암동(행정동,many) - 안암동4가(법정동,many) ... 대치동, 목동의 예만 봐도 평소에 우리가 쓰는 것이 행정동이라고만 할 수 도 없다 ㅡㅡ.) 검색 혹은 학원 정보 입력시에 이런 부분들을 계산하는 로직을 넣어야하는데, 모델링도 다소 수정이 가해져야하는지라.. 흐음.. 그 수요가 어느정도일지가 글쎄.. 아직 잘 모르겠다.

뭐 일단은 법정동 기준으로 데이터도 뽑았고 간단한 FE, BE 토이 프로젝트를 해보았다.

기획자가 필요한 정보도 가공해서 주고, 아무튼 이번 주에 이러저러한 잡무들로 오랫만에 데이터들을 많이 다뤄본 거 같다.

2. 데이터셋 명세

이번 프로젝트를 하면서 가장 크게 얻는 점들은, 앞으로는 작업을 어떻게 해야할지에 대한 것들을 몸소 체험하고 있다는 것들.. 뭐 여러가지가 있을 수 있겠는데.. 그 중 하나가 데이터셋이다. 기능명세는 글쎄.. 린스타트업 지향이라면, 계속해서 바뀔 부분들인 것이고, 빠르게 개발하여 피드백을 받는다고 생각하면, 이런 부분들에 너무 오랜 시간을 들이는 것은 좋지않다.. 고 알고있었으면서도 리소스가 상당히 들어갔고, 지금도 들어가고 있다 .. 데이터셋은, 백엔드쪽에선 모델링 구조 그대로 전달했고, 프론트는 화면에 보여지는 그대로의 값을 원했고, 그 사이에서 생각이 달랐던듯 하다. 각 데이터 마다 후처리를 어디서 해주는 것이 성능상 이점이 있을지에 대해 이야기하는 시간들은 다소 유익했으나, 선행되었었으면 어땠을까 하는 생각이 드는 시간들이었다.

3. OOAD

R이 Head First OOAD 책을 가지고 스터디를 하는 중에 궁금한 점을 가끔 물어보곤하는데, 역시 어설프게 알다보니 대답을 해주면서 내가 더 헤매기도하고 그러면서 배우는 점들도 많다. 프로젝트가 끝나면 자바 기초에 대한 정리는 이 책을 기준으로 하는 것도 괜찮을 것 같다.


4. 잡생각

평소에 운세 이런거 잘 안보는데, 페친이 신년운세를 올린 것을 보고 반사적으로 보다가 '헉' 했다. 원래 운세라는 것이 누가 읽어도 각 상황에 맞는듯한 느낌을 주는 문체를 쓴다고는 하지만.. "침묵과 솔직함의 경계에서 생각이 많을 수 있다"는 부분에서 ..  지금껏 특정 시점에서의 인적 네트워크는 다른 인맥 풀과는 의식적으로 구분해왔었다. 관계가 복잡해지는 것이 싫기도 했지만, 인생의 각 시점에서 내가 취했던 페르소나가 제각기일텐데, 그런저런 나를 아는 사람들과 같이 이야기를 나누는 것이 꽤 혼란스럽다. 그리고 사람들은 꽤, 타인에 대해 관심이 없고, 그러한 이야기들은 그저 잠깐의 주전부리라는 것을 지나한 세월 겪어왔기에 .. 흐음.. 뭐 지금은 공동의 목표가 있어 정신이 없기도 하고, 아직은 수용가능한 부분이기는 한데.. 속도가 너무 빠르다. 그만큼 잘 맞는다는 반증이기도 한건가..


5. 재성이 형 생일

헤헷. 왜 이렇게 내가 즐겁지 ㅎㅎ



4. Trouble Shooting

JPA도 정상으로 동작하고 로그도 남고, 로그에 있는 쿼리로 직접 조회해보면 된다. 에러도 없고 패킷을 떠보니 제대로 넘어가는 거 같다. 그런데 왜 안되지?

mysql server character set 문제로 한글의 경우에 utf8 이 제대로 안들어가는 문제였고, 이 때문에 시간을 꽤 소비했다. 어휴

(DB character set이 아니라 server charcter set이 별도로 있고, 이게 connection 과 관련 있는듯..

그리고 무엇보다 mysql 5.5.3 이상부터는 세팅 값이 달라진다는 부분도 허 참..)


1
2
3
4
5
6
7
8
9
vi /etc/mysql/mysql.conf.d/mysqld.cnf
 
[mysqld]
 
collation-server = utf8mb4_general_ci
 
character-set-server = utf8mb4
 
skip-character-set-client-handshakesq
cs


1 / 3 (수)

1. JPA

이번 프로젝트 중 가장 먼저 학습하고 싶은 부분은 JPA이다. 추후에 DDD로 까지 확장하여 학습하고 싶다. 간단하게라도 토이프로젝트를 만들어봐야겠다. 


2. DB..

주소 데이터를 뽑아내는 일때문에 오랫만에 SQL을 작성하다 (따분하고 지루한 작업만하기 싫어서) 계층 구조 구현하는 쿼리를 오랫만에 만져봤다. 우리는 대댓글 기능을 Question - Answer (OneToMany), Answer - Reply (OneToMany)로 구현하고, 페이지 상에는 각 질의에 대해서 따로 보여주는 형태로 구현하기로 했다. JPA를 사용하기로 한 입장에서 그게 리소스가 적을 것이라는 판단이었고, 화면 흐름상에서도 자연스러웠다. 그런데 이 부분을 쿼리로 한번 짜보면 어떨까 싶어 (카카오 API를 통해 학원 주소 경/위도 값을 가져오는 작업을 돌려놓은 후.. 꽤 시간이 걸림 ㅠ.ㅠ) 이래저래 고민해보았다. 그러다 다음과 네이버의 대댓글도 다른 형태로 구현되어 있어, 각각에 대해 스키마를 구성하고 작업해보았다. (미완 ..;;) 


3. WebFlux...

브라이언의 토이프로젝트를 기준으로 한번 테스트를 좀 해보려했는데.. 뭔가 2일차인데 벌써 PM이 된듯한 기분이다. 기획자와, 프론트와, 백엔드와, 그리고 DevOps로서의 롤.. 생각치 못했던 DB작업들.. 어떤것 하나 제대로 하지못하고 뒤치닥거리만 하는 그런 느낌이다.

1 / 2 (화)

1. 새 해, 새로운 장소

1달간 프로젝트하며 사용할 공간에 방문했다. 함께할 수 있을 공간을 확보하는데에 걱정이 많았는데, 일이 잘 풀렸다. 또 한번 좋은 사람들과 함께함에 감사하고, 그들의 마음이 고맙다. 이 장소에서 별탈없이 즐겁게 작업을 마무리지었으면 좋겠다. (부디 ㅠ.ㅠ). 집에서 운동삼아 걸어다닐 생각이다. 


2. 계획

어제에 이어 18년도 계획 (만다르트)를 완성했다. 졸면서 하다보니 다소 횡설수설했는데, 뭐 계속 수정되겠지.. 다른 부분보다 1월과 2월의 계획이 너무나 너무나 너무나 걱정이 많다. 하아...


3. 그 외의 작업들..

준과는 사업 정관 및 개인정보 처리방침에 대해 검토 및 작성을 하였고, 이 부분 포함하여 전반적인 부분에 대해 법률자문을 요청받을 계획이다. 그리고 동 기준 검색을 위해 모델링을 수정했다. (양방향) 그리고 프론트 작업을 위해 Devel과는 별도로 더미값을 위한 서버를 별도로 구성했다.



프로젝트에 CI / CD 환경을 적용하고 관련해서 codesquad에서 간단한 발표를 하였다. 별거 아닌 일들에 시간을 너무 많이 소요되었다. 시연하는 게 생각보다 신경 쓸일이 많다는 것을 몸소 느낀 시간들이었다. 그래도 travis ci, jenkins를 이래저래 다뤄보는 경험을 할 수 있어 좋았고, 아키텍처에 대해 고민해보고 계속 뜯어볼 수 있어 좋았다. (프로젝트에 CI / CD 적용하기)







'Log > .TIL' 카테고리의 다른 글

[TIL]180122-0203  (2) 2018.02.04
[TIL]180109-0121  (0) 2018.01.22
[TIL]171210-1225  (0) 2017.12.14
[TIL]171204-1210  (0) 2017.12.10
[TIL]171127-1203  (0) 2017.11.29
댓글
링크
최근에 달린 댓글
«   2024/05   »
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 29 30 31
Total
Today
Yesterday