Coding History/Team Project 64

팀플) API 연결 비회원 별자리 데이터 처리, 유저 상세보기 페이지

어제 이제 각 팀원들 브랜치까지 머지 완료했고, 또 뭐 오류가 있었어서 그거 해결한다고 조금 오래 걸렸다. 지금 브랜치는 master, develop, develop2, feature * 4, 이렇게 7개 있음..여튼 이제 내가 만든 API를 연결해야되는데 이걸 어떻게 관리해야될지 조금 고민 해볼 필요가 있다.일단은 리팩토링을 좀 해서 구조를 짜놓자. 만들어둔 CRUD가 존재하는게 그에 대한 구조 자체도 수정할 필요가 있다.우선 이 친구들을 따로 빼줌.그리고 DB에 저장할 것을 생각해보자면 변동성이 적을 테이터만 DB에 저장하면 될 것 같은데 뽑아보면 별자리 데이터랑 유성우 데이터가 있다.하지만 별자리 데이터는 위치별로 좀 나눠서 응답을 할거기 때문에 그냥 유성우 정도만 DB에 저장하도록 구조를 짜자.그..

AWS S3, Terraform CLI

도메인 구입도 해보고, AWS에서 IAM으로 root 로그인 말고 사용자?로그인도 해보고..여튼 AWS의 서버 컴퓨터에 더 쉽게 명령어를 날릴 수 있는 Terraform을 사용해보자우선은 awscli를 다운 받았고 로그인 진행함.그리고 terraform도 다운 받음.테스트용으로 하나 만들어서 테라폼 파일main.tf도 생성함.terraform init으로 initalized도 진행해서 위에 terraform 폴더도 생성됨!terraform plan으로 상태 점검 한번 해봤다.이제 VPC를 만들어서 AWS 서버에 띄워보자.이걸 이제 띄우려면 main.tf를 작성하면 된다.여기서 왜 AWSCLI를 사용하느냐?원래 AWS 콘솔에서 클릭해가면서 서버 설정을 하면 되는데 이렇게 환경을 준비하면 명령어로 효율적으로..

팀플) API 오류 해결, 서버 재배포

위 이미지와 같이 갑자기 API 요청들이 먹통이 됐는데, 처음엔 왜이러지 싶어서 파이썬 서버를 열어서 다시 확인해봤다.똑같다.곰곰이 생각해보니까 아마 MAP API를 지금 스프링에서도 연결하면서 문제가 된 것 같다는 생각이 들었다.그래서 설정을 추가함.위가 내 원래 서버, 도커서버인데.. 안되네?그래서 도커 컴포즈에서 url을 고정 시킬 방법을 찾아봄.아 그럴 필요없네 알아서 컨테이너 이름으로 url이 설정된다고 한다.걍 설정 지워서 해결함.보니까 내 API에서 보내는 요청은 IP 주소 형식이고 Spring에서는 웹사이트 url인데 이거 설정하기 귀찮다,,근데 또 별게로 항상 켜두고 테스트를 해서 몰랐는데 배포한 서버에서는 리소스 관리 때문에 일정시간 접근이 없을시에 서버를 끄는데 이 때 DB 접근이 필..

팀플) Google Maps API 백엔드 통신 및 react-toastify 로 자연스러운 UI/UX 구현

이제 대충 구색은 맞춰놨으니까, 백엔드로 위도 경도를 전송할 수 있게 하면 된다.근데 그전에 시큐리티 설정부터 만져야될듯?그리고 또 그전에는 확인 버튼이랑 저장 버튼도 만들었다.검색내 위치로 저장대충 일케 만들어두고 일단 함수는 깡통이다.그럼 이제 데이터가 어떤 방식으로 전송되는지 부터 확인해야하니까.아무대나 찍고 버튼 클릭하니까 lat, lng이 출력된다. 이제 이걸 갖다가 백엔드랑 엮어주면 됨.우선 지금 로직을 짜기 위해서 Location에 대한 컨트롤러 서비스를 작성하고 있는데, 가만 생각해보니까 관측 위치를 하나만 저장할 수 있다. 왜? 유저 테이블에 위경도가 있으니까. 근데 그렇게 하기보다는 Location 테이블을 나눠놓는편이 수월할 것 같다는 생각이 들어서. 일단 그렇게 진행해보는게 좋을듯그..

팀플) Spring CRUD와 API 데이터 엮기 (Google Maps API)

이제 기존에 만들어둔 Spring에서의 API와 천문 데이터 API 와 엮어주면 된다.그럼 엮기 전에 생각해볼 것이 있는데, 내가 만든 API 대부분이 위도 경도가 거의 필수로 필요하다. 그렇다면? 일단 요청에 위도 경도를 태워 보내야한다. 그래서 사용자가 주로 관측하는 위치를 저장을 해둬야하는데 테이블에 위도 경도 칸이 있을 필요가 있었다.확인해보니까 이미 있더라 과거의 나 칭찬해,,그럼 일단은 이 정보를 저장할 로직, 그리고 정확한 위치를 받아서 정확한 위경도를 저장해야될테니 지도와 관련된 API를 연결해줘야겠다! 라는 결론으로 도달.그래서 뭐부터 하냐?Google Maps APIGoogle Maps API 연결부터 하자.Google Cloud Console로 다시 이동. 우리 팀플을 위해서 만들어둔..

팀플) Merge 기록

이제 나도 본격적으로 프로젝트에 다시 투입되었기 때문에 (지금 구글 맵 API 연결중이였다.) 병합을 한번 진행하고 개발하는 것이 좋다고 판단했다.나는 프론트에 손을 대지 않을 것이라고 호언장담하였지만, 구글 맵 API 연결 도중 프론트로 접근해야된 다는 것을 깨닫고..(당연한게 앞에서 뒤로 위도 경도를 전송시켜줘야하니까..) 더 꼬이기전에 진행하자고 한 것.머지는 무사히 마쳤고,기능 자체는 잘 되는데, 마지막 팀원의 머지까지 마치고, 프론트의 행성들이 망가진 것을 확인했다. 이건 이제 저쪽에서 해결할테니 그대로 넘겨주면 될 듯..백엔드 기능은 당연 문제 없이 작동한다.팀원 1, 2가 메인의 행성, 그리고 상세 페이지의 행성을 다뤄서 머지하면 망가질 걸 예상은 하고 있었어서 이건 알아서 아마 해줄 것이다..

팀플) Star Info API 요청 방식 설명.

1. /api/constellations (GET)요청 방식: GET필요한 파라미터:lat (필수, float): 위도lon (필수, float): 경도start_date (선택, str, YYYY-MM-DD): 시작 날짜end_date (선택, str, YYYY-MM-DD): 종료 날짜설명: 사용자가 요청한 위도, 경도, 날짜 범위에 따라 해당 위치에서 관측할 수 있는 별자리 정보를 반환한다. 별자리의 가시성도 함께 계산함.2. /api/sunrise_sunset (GET)요청 방식: GET필요한 파라미터:lat (필수, float): 위도lon (필수, float): 경도start_date (선택, str, YYYY-MM-DD): 시작 날짜end_date (선택, str, YYYY-MM-DD): 종료..

팀플) API 서버 배포 (Oracle Cloud 무료 서버 사용)

컴퓨터로 서버를 지정할까 했는데 아무래도 괜히 또 문제 생길까 무서워서 그냥 Oracle Cloud로 무료로 할 수 있다고 해서 해보려고 한다.계정도 다 만들었고, 신용카드 등록가지 하고 로그인하니까 이런 창이 떴다. 서버는 일본의 오사카에 있는 서버를 골랐다.이런게 떴는데 보안 관련된거라고.여기서 앱 다운 받아서 설정해주면 된다.다하니까 이런 창으로 넘어갔다. 뭔지 하나도 모르겠네일단 나는 API를 배포하려는 것이 목적이기 때문에Cloud-native developer: 클라우드 환경에서 컨테이너와 같이 클라우드 기반 애플리케이션을 배포하고 관리하는 경우에 적합해. 네가 Docker 컨테이너로 API 서버를 배포하려는 경우에 맞는 선택이야.DevOps engineer: 서버 배포 및 운영, CI/CD와..

팀플) 별자리 데이터 검증.

검증하겠다고 전부터 말을 해놨는데 계속 못갔던게 대전이 그 때 부터 쭉 흐렸다. 이번주 수목이 맑길래..새벽 1시 35분에 나왔다. 이제 성차산을 찍어두고,,갔다왔다.사진이 흔들리긴 했는데 2시 20분 언저리에 도착했고,차안에 노트북으로 2시 35분인 것 확인.남서쪽에 Ari(양자리)를 볼 수 있다는 것도 확인.별이 진짜 잘 보였다. 뭐 당연히 빛이 거의 없는 산골로 들어오기도 했고.. 근데 난 사실 별자리를 볼 줄 모른다.그래서 뭐 어떻게 했냐.앱 다운 받고 남서쪽을 찾아봤다. 다운 받은 앱이 Skyview Lite 라는 앱이였는데 폰으로 내 위치에서 볼 수 있는 별자리를 증강현실로 표시해준다. 그니까 폰을고 이리저리 카메라로 찍드시 비추면서 보면 대강 내가 찾을 별자리나 행성의 위치를 알 수 있다.우..

팀플) 유성우 가시성 판단 로직 -> 달의 위상구하기까지

을 하기 전에 방위는 계속 해서 쓸 것 같아서 util로 빼서 새로 만들어서 갖다 쓸 수 있게 했다.from app.services.directions_utils import azimuth_to_directiondirection = azimuth_to_direction(azimuth)뭐 이렇게 갖다 쓸 수 있게.. 아니면 8방위에 대한 코드가 별자리에도 행성에도 유성우에도 있을테니까 로직을 짜는 와중에 빼는게 좋겠다고 판단해서 빼줬다.당연히 기능이 정상작동하는지도 확인했다.우선 이전에 calculate_altitude_azimuth고도를 구하는 메서드(방위각 계산 까지 추가함)도 기존에 있었고, parse_ra_dec적경과 적위를 구하는 로직도 만들어뒀어서 빨리 결과를 뽑았다. 근데 뭔가 부족하다는 느낌..