추석이라 집에 내려와서 쉬면서 앞으로 내가 어떤 공부를 해야하는가에 대해 고민해봤다. 내가 그리는 인생 목표치를 정리해보고, 목표를 이루기 위해서 지금 내가 어떤걸 해야할지 고민해봤다. 지금 시대는 노력만 한다고 성공할 수 있는게 아니라, 가성비가 좋은 노력을 해야 성공할 수 있는 것 같다. 흘러가는대로 사는게 장기적으로 더 힘들다 판단되기에 단기적으로 나마 삶의 목표치?를 생각해봤다.(인생의 클린 아키텍쳐랄까...) 인생 미니 로드맵 일단 3학년에 복학을 하면서 바로 현직 경험을 해볼 것이다. 학과공부만 하면서 3,4학년을 보내기에는 너무 시간이 아까운 것 같다. 58학점 정도가 남았는데(51학점이 전공으로 채워져야하는게 함정), 4학기가 남았으니 학기중에 12학점을 듣고 계절로 채워보는 방향이면 파트..
전체 글
본과정에서는 6월부터 11월까지 6개월동안 하나의 프로젝트를 진행해야한다. 팀 안에서 개발 리드를 하면서 겪었던 부분들과, 본과정에서 있었던 일, 느낀점 등을 정리해보려한다. 주제 일단 주제가 제일 중요하다. 우리팀은 주제 정하면서 시간을 많이 썼는데(그렇다고 시간을 낭비했다는건 아니다), 주제 정하는게 생각보다 까다로웠다. 단순히 프로젝트 주제를 정하는게 아니라 'IT 기술이 들어가야하고', '시장이 커야하고', '유저가 쓸만해야하고', '6개월 안에 3명이 할 수 있어야하며', '비즈니스 모델이 세워져야하는' 여러 조건을 충족하는 주제여야했다. 우리는 처음에 MVP를 만들다가도 출시전 주제를 한번 갈기도 했다. 2주동안 노력보다, 남은 5개월의 행방이 중요했으니까. 그래서 최종적으로 '집 구할 때 생..
앞서 포스팅에서 했던 방법으로 EB를 통해 호스팅한 서버에서 S3로 이미지를 보내는 와중에 클라이언트(앱)에서 413 에러를 response 받았다. 서버 로그를 찍어보니... nginx 로그에서 에러가 찍혀있었다. [error] 32211#32211: *9131 client intended to send too large body: 6115831 bytes 음... 딱봐도 뭔가 큰걸 보내서 터졌다는 말인듯하다. 한 6MB 정도 되어보이는데(아이폰은 이미지 용량이 크기도 하네...), 가공 없이 보내니까 터졌다. nginx를 뒤적거려보니 파일 전송 limit가 걸려있어서 설정을 바꿔줘야 한다고 했다. 근데 여기서... 늘 ec2에 접속해서 배포할 때마다 설정을 건들여주기엔... 그러면 CD를 하는 의미가..
2, 3일동안 삽질한 결과를 차차 정리해보려한다. 원래 EC2에 codedeploy를 달아서 CI/CD를 하다가, 서버 관리와 CI/CD를 더 편하게 해주는 'Elastic Beanstalk'라는 것이 있다고 해서 사용해봤고, 이 글에서는 정리(찬양)을 해보려 한다. Elastic Beanstalk 란? "AWS Elastic Beanstalk는 Java, .NET, PHP, Node.js, Python, Ruby, Go 및 Docker를 사용하여 개발된 웹 애플리케이션 및 서비스를 Apache, Nginx, Passenger 및 IIS와 같은 친숙한 서버에서 손쉽게 배포하고 확장할 수 있는 서비스입니다." - 출처 AWS 간단히 말하면 몇몇 자주 이용되는 언어로 개발된 웹 서비스를 쉽게 배포할 수 있게..
자격증 시험 후기를 남겨보려한다. 딱 열흘전에 '정보처리산업기사' 필기를 봤다. 군대갈 때(아마 내년...) 정보보호병 뿐만 아니라 SW개발병도 써보려고, 응시를 하게 되었다. 정말 보탬 1도 없이 이틀동안 6시간쯤 공부하고, 붙었기에 본인썰 + 극한의 벼락치기 고효율 공부법을 공유해보고자 한다. (물론 전제 조건은 컴공 수업을 어느정도 들었다는 조건이다. 서당개도 3년이면 풍월을 읊는다고...) About 시험 응시요건 : 이것저것 가능한 요건이 있는데 본인은 '4년제 대학교 2학년 이상 수료' 조건으로 응시할 수 있었다. 필기는 총 3개 과목을 다루는데 1. 정보 시스템 기반 기술 (OS, 배포, UI/UX 등등 포괄적) 2. 프로그래밍 언어 활용 (HTML, CSS, JS, Java, C, Pyth..
지금 하고 있는 프로젝트에서 React-Native 기반의 앱에서 사진을 찍어서 upload 요청을 하면, 받아서 S3에 올리고, 다시 꺼내주는 API를 만들어야했다. 처음에는 REST API 대신, 원래쓰던 GraphQL로 트라이 하다가, 몇번에 실패 후 사진 업로드 모듈만 따로 REST로 때어냈다.(아 아무튼 사진만 업로드 되면 되니까...) 하는김에 AWS 보안 설정도 좀 더 손봐서 추가해본다. 1. AWS IAM 사용자 추가 및 Access Key 발급 AWS 콘솔에 root 유저로 로그인 되어있다는 가정하에, 좌측 상단에서 IAM 검색 -> 사용자 -> 사용자 추가 위와 같이 액세스 키, 암호를 할당, 이후 쭉쭉 다음 눌려서 검토 후 생성 -> 이때 key를 csv로 받을 수 있고, 유저 이름과..
현재 프로젝트는 Ubuntu(EC2)에서 nodejs+express+GraphQL로 백엔드 구성, 프론트는 React-Native와 약간의 React 기반 웹뷰로 진행되고 있다. Webview에서 React로 카카오 지도API를 띄우는 과정에서, 현재 사용자의 위치정보를 받기 위해 Geolocation API를 사용했는데, 로컬에서는 잘 돌아가는 것이 서버에 띄우니까 빈화면이였다... Geolocation PositionError 어쩌고 저쩌고 나오길래 구글링해봤더니 Geolocation API는 브라우저에서 지원하는 네이티브 API로 localhost가 아니면, https://에서 작동한다는 것이다. 유료 ssl을 쓰자니 아직 프로젝트 지원비 신청을 안해서 너무 비싸서 못쓰겠고, openssl 같은걸로..
앞선 포스트에서 @Apollo/Client 에서 지원하는 React Hook을 이용하는 방법을 공부했었다. 하지만 실제 프로젝트에 쓰려고 보니, GraphQL을 가져오는 과정이 React Component 안쪽이 아닌 곳에서는 useQuery, useMutation과 같은 Hook을 사용할 수 없다는 점이었다. (이 사실을 모르고, 거의 이틀을 억까 당하며 고생했다.) 위 사실을 깨닫고 나서는 새로운 방법 axios 라이브러리를 이용해서 직접 API 쿼리를 날리는 방법을 사용했다. 이렇게하면 어디서나 함수호출의 형태로 response를 받아오는것이 가능해졌다. 본인은 백엔드를 개발하지만, 결국 프론트 개발자에게 맞춰서 API 호출 규약을 짜서, 넘겨줘야 했기에 프론트 언어 (혹은 라이브러리)에 대한 이해..
이번에 소마 프로젝트를 하게 되면서, BackEnd에서 뭔가 더 배우고 싶다는 생각이 들었다. 다른걸 시도 해볼만한게 2개 있었는데, SQL 쿼리 작성할 때 ORM을 쓰는 것과, API 단에 GraphQL을 사용하는 것이었다. ORM을 도입하기엔 쿼리가 복잡하진 않았고, REST API 대신 GraphQL을 도입하기로 했다. server단은 다른 포스팅에서 다루고, client 단만 다룰 예정이다. 처음에 npx CRA로 react 앱을 생성하고, 3가지 파일만 바꿔주면 된다. React는 쉬운데, React Native에서 적용하려니 에러가 나서 거진 하루는 털린거 같다... React Native에서 할때는 컴포넌트를 같은걸로 바꿔 써야한다. + android, ios 각각에서 외부 api http..
소마 활동을 한지 2달, 정확힌 2달하고 보름정도가 지났다. 그동안 뭘했는지 스스로도 돌아볼겸, 정리할겸 그리고 이 글을 읽을 불특정 다수에게 소마를 한번 추천해보고자 글로 정리를 해보고자 한다. 총평부터 남기자면 정말 내 주변 컴공에 있는 모든 지인들에게 본인이 특정 분야(보안, 게임, DE/DS etc...)에 꿈이 확고 한게 아니라면, 꼭 츄라이 해보라고 추천하고 싶다. '아직 2개월 밖에 안했으면서 뭘'이라 할 수 있겠지만 2개월만 했는데도 명확한 장점이 보인다고 봐주면 좋겠고, 중간중간 소마뽕이 차있는데 자랑겸 소마 자극 글 정도로 봐주면 좋겠다 :) 소마 전체적인 커리큘럼은 위와 같다. 크게 예비과정과 본과정으로 나뉘고, 예비과정에서 이것저것 활동하며 배우며 여러 연수생분들과 멘토님들을 만나게..