전체 글

흔한 컴공 출신 개발자입니다. 제가 경험하고 공부하고 아는 것을 적어둡니다.
· FastAPI
(만약 이 글이 회사 기술블로그에 포스팅된다면 글을 내리고 링크를 첨부할지 둘 다 갈지 고민좀 해보겠습니다.) -1. 들어가며 필자는 python은 조금 알지만 웹 분야는 아예 모르는 상황 팀 내 테스트를 위해 간단한 서버를 구축할 필요가 생김 재미있어 보여서 내가 직접 만들어본다고 외친 후 제작 시작(지식이 아예 없는 상태에서 막막하긴 했음) 0. 왜 FastAPI인가 많고 많은 서버 프레임워크가 존재하는데 왜 Fast API를 골랐냐고 물어본다면 ‘그냥 해보고 싶어서’ 라고 대답한다. Java와 Python을 사용하던 중 한번 쯤은 Fast API를 사용해보고 싶었는데 이 참에 사용해보기로 결정했다. 1. FastAPI란 무엇인가 https://fastapi.tiangolo.com/ko/ 첫 문장 부..
· JAVA/Kotlin
회사에서 하던 업무를 다시 복기해볼 겸 간단한 예제를 만들어 정리해본다. 0. 목적 아무튼 서버에 있는 JsonData를 읽어오기 1. 서버 FastAPI에서 요청이 들어왔을때 Json을 반환하게 해 주었다. @app.get("/user-data") def user_data(request : Request): print(request) file_path = "./static/Sample.json" f = open(file_path, 'r') data = json.loads(f.read()) return JSONResponse(content = data) 서버에 static디렉토리에 json파일을 만들어 넣어두고 다 읽어서 반환하게 했다. 2. 데이터 간단하게 만들었다. [{ "ID": "KR-203424..
새 회사에서 새 기술을 접하면서 내가 안해본 분야를 하다 보니 모르는게 너무 많았다. 웹을 안해봤고 다른 언어도 많이 안해봤는데 이번에 새로 알게된 내용을 간단하게 정리해 보았다. Get/Post를 쉽게 구별하려면? 홈페이지를 눌렀을때 페이지가 보이면 Get 안보이고 에러가 나오면 Post 쿠키 규칙 쿠키를 처음 사용해봤는데 Key, Value에 규칙이 있음 Key : 알파벳과 숫자로만 이루어져 있어야 한다.(당연하게 $로 시작할 수 없으며, 콤마, 세미콜론, 공백 등의 문자를 포함 불가) Value : 공백, 괄호, 등호, 콤마, 콜론, 세미콜론을 포함할 수 없으며 이들 값을 포함하려면 인코딩이 필요. 그래서 모든 데이터를 웹뷰에서 가져가기 위해 Value를 utf-8로 인코딩해서 전달함 자바스크립트 ..
· JAVA/android
0. 들어가며 이직한 회사에서 안드로이드 라이브러리를 만드는 업무를 맡게 되었다. 실은 안드로이드 안 해봤다. 자바는 적당히 해봤다고 생각했는데 이번에 사용하는 오픈소스 라이브러리 하나가 코틀린으로 되어있었다. 이렇게 된 이상 간단하게 만들어가며 적응을 좀 해보려고 한다는 것은 반은 맞는 말이고 실은 할거 없어서 하나 만들어보려고 했다. 1. 왜 popcat인가 이유는 진짜 간단하다. 이미지 2개만 터치 이벤트 넣으면 끝난다. 2. 구현 일단 popcat이미지 2개를 구했다. 그리고 입을 다물고 있는 이미지를 이미지뷰로 넣어 기본값으로 하고 배경은 검정색으로 만들었다. 저 화면은 이미 내가 전체 화면을 적용해놓은 상태인데 appbar와 맨 위에 상태 표시줄을 없애기 위해서는 thems.xml에 다음 코드..
이번 장은 팀장의 입장이 아닌 그 위, 여러 팀들과 팀장들을 관리하는 관리자의 입장에서 생각을 한다. 전 회사에서 연구소장이 어떤 기분이었을지 생각을 하며 읽어보았다. 0. 들어가며 정말 훌륭한 리더로 성장하려면 3A 리더십을 필요로 한다. 3A Always be deciding : 늘 결정하라 Always be leaving : 늘 떠나라 Always be scaling : 늘 확장하라 1. 늘 결정하라(Always be deciding) 여러 팀으로 구성된 팀을 관리한다고 함은 기존보다 높은 수준에서 더 많은 걸 결정해야 한다는 뜻이다. 이 높이에서 우리가 내리는 결정 대부분은 여러 전략 사이의 트레이드오프들을 정확히 찾아내는 일이다. 모호한 문제를 전체적인 숲을 보며 풀어나가는 과정은 3단계로 나누..
내 첫 회사를 퇴사한 지금 팀장의 입장과 팀원의 입장에서 이 글을 읽으며 많은 생각이 들었다. 0. 들어가며 이번 장은 궁극적으로 ‘책임지는 사람’의 시선으로 이야기를 진행한다. 1. 리더와 매니저 구글은 리더 역할을 두 가지로 구분해 생각한다. 관리자(manager)는 사람을 이끌고 테크 리드(tech lead)는 기술과 관련된 책임을 진다. 2. 우리에게 선장이란 선원이 아무리 많다 한들 선장이 없는 배는 그저 길을 잃은 조각배에 지나지 않다. 소프트웨어에서도 선장이 없다면 엔지니어들은 값진 시간을 허비한다. 3. 관리자와 테크 리드(혹은 둘 다) 모든 팀에서는 리더가 있지만 리더를 모셔오는 방법이 다를 수 있다. 팀에서 경험이 많은 팀원을 리더로 하거나 외부에서 리더를 모셔오기도 한다. 신생 팀의 ..
이번 장에서는 특정 ~~ 주의, ~~ 리즘뿐 아니라 다양한 관점에서 우리가 만드는 프로그램이 안전하고 누군가를 무의식적으로 공격하거나 배려하지 않는지에 대해 고민을 할 필요가 있다고 알려주고 있다. 실은 지금까지 프로그램을 만들면 학교 과제나 랩실의 연구 과제, 회사에서 특정 도메인에 대한 테스트 자동화 프로그램을 개발하였는데 이 부분에 대해서도 읽으며 고민을 할 수 있게 되었다. 0. 들어가며 다양한 계층의 사용자를 위한 제품을 설계할 때 엔지니어가 짊어져야 할 책임은 가볍지 않다. 아직 소프트웨어 엔지니어링 분야는 계속해서 개척 중이며 새롭기 때문에 사회적 약자나 다양한 문화관에 미치는 영향을 이해해가는 중이다. 우리는 성장해나가며 깨달은 부분에 대해서 다음 세대의 엔지니어들이 우리보다 나은 결정을 ..
지식 공유에 대한 문화가 없는 팀에서 대략 2년 동안 문화를 만들기 위해 노력을 해보았지만 실패하였다. 이제 2~3년 차 주니어 개발자가 파악하지 못한 이슈가 있었을 수도 있고 더 노력을 했어야 했을 수 도 있지만 결론은 문화를 만드는데 실패하였다. 이직을 앞둔 상황에서 이 장을 읽으며 다시 한번 지난 노력을 생각해보았다. 0. 들어가며 조직에는 각 분야에 대한 전문가들이 필요하다. 전문가는 문제에 대한 답을 스스로 도출할 수 있어야하고 다른 사람의 질문에 대해 답을 줄 수 있어야 한다. 지식 공유를 하기 위해서는 전문가와 더불어 지식을 전파할 메커니즘도 필요하다. 배움의 문화가 자리 잡혀 있어야 하고 이 배움의 문화가 자리잡기 위해서는 사람들에게 모르는 부분을 인정할 수 있도록 돕는 심리적 안전을 제공..
더 뒤에 어떤 내용이 나올지 모르겠지만 2장에서 내가 원하던 내용이 나왔다는 느낌을 받았다. 나도 코드 리뷰를 무서워하며 숨기려 했던 적이 있고 조금 안다고 해서 겸손보다 자만에 가까웠다. 2장의 내용은 이런 개발자들을 위한 내용이다. 1. 불안감 우리 주변 소프트웨어 엔지니어들에 대한 행동 관찰하면 이런 행동이 나타나는 경우가 있다. 코드를 숨긴다. 내가 만든 코드를 숨긴다. SCM히스토리를 제거하거나 숨길 수 있는지 찾아본다. 이 행동들은 불안감에서 비롯되었다. 내 작업물을 다른 사람들이 보고 판단하는 것을 두려워하는 인간의 본성에서 나왔을 것이라 예상한다. 사람은 누구나 비난보다는 칭찬을 받고 싶어 하는데 완성되기 이전의 작업물이라면 더욱 보여주기 불안해 할 수 있다. 문제는 이 불안감은 더 큰 문..
이직 전 책 한 권을 읽고 들어갈까 고민하던 중 요새 이 책이 그렇게 내용이 재미있고 유익하다길래 알라딘 ebook으로 사서 읽고 있다. 읽으면서 내가 느낀 내용을 각 챕터 별로 조금씩 정리를 하고자 한다. 프로그래밍? 소프트웨어 엔지니어링? 우리가 흔히 말하는 프로그래밍은 개발(development) 작업이고 소프트웨어 엔지니어링은 더 포괄적인 의미로 개발, 수정, 유지보수가 들어가 있다. 소프트웨어 엔지니어링은 더 이상 프로그래밍이 아닌 더욱 고차원의 개념이다. 수정과 유지보수는 더욱 고차원적인 개념에서 파생된 부분으로 프로그래밍과 소프트웨어 엔지니어링의 가장 큰 차이를 만들어주는 시간, (규모) 확장, 실전에서의 트레이드오프에서 비롯되었다. 시간이 프로그램에 영향을? 내가 작성을 하던, 하지 않았던..
Berno
흔한 컴공 출신 개발자