전체 글

흔한 컴공 출신 개발자입니다. 제가 경험하고 공부하고 아는 것을 적어둡니다.
· JAVA/android
구버전 안드로이드OS(4.4 Kitkat)에서 TLS쪽 문제가 발생했다. 4.4 버전에서는 TLS 1.1까지를 지원한다고 되어있었다. 문제는 나는 TLS 1.2와 통신을 해야한다. TLS(Transport Layer Security)란? SSL(Secure Socket Layer)의 표준화된 단어 라고 생각하면 된다. SSL 3.0부터 표준화가 되어 SSL3.0 = TLS1.0 이라고 생각하면 편하다. HTTP통신은 별도의 인증없이 서로간 프로토콜만 맞으면 통신이 가능하지만 HTTPS부터는 서로간의 인증서가 맞아야 통신이 가능하다. 통신을 하며 메시지를 주고 받는 과정을 Handshake라고 하는데 인증서가 맞지 않는 경우 SSL Handshake 에러가 발생한다. 요즘 나오는 대부분의 서버는 기본값이 ..
CORS(Cross Origin Resource Sharing) 백엔드와 프론트엔드의 Origin이 다를때 나타나는 상황 FastAPI에서 CORS를 허용하는 방법 CORSMiddleware를 사용한다. from fastapi.middleware.cors import CORSMiddleware . . . . origins = [ "http://localhost.tiangolo.com", "https://localhost.tiangolo.com", "http://localhost", "http://localhost:8080", ] app.add_middleware( CORSMiddleware, allow_origins=["*"], #allow_credentials=True, allow_methods=["*..
· FastAPI
https://developer-youn.tistory.com/98?category=989068 Kotlin으로 서버에서 json데이터 가져오기(FastAPI를 곁들인) 회사에서 하던 업무를 다시 복기해볼 겸 간단한 예제를 만들어 정리해본다. 0. 목적 아무튼 서버에 있는 JsonData를 읽어오기 1. 서버 FastAPI에서 요청이 들어왔을때 Json을 반환하게 해 주었다. @app.ge developer-youn.tistory.com 이 글에서 사용한걸 그대로 옮겨왔습니다. 일단 뭐든 해봐야겠죠. 저는 원활한 사용을 위해 아래 코드는 기본적으로 넣어두었습니다. from fastapi import FastAPI, Request, Form, Header from fastapi.responses impor..
· 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. 들어가며 다양한 계층의 사용자를 위한 제품을 설계할 때 엔지니어가 짊어져야 할 책임은 가볍지 않다. 아직 소프트웨어 엔지니어링 분야는 계속해서 개척 중이며 새롭기 때문에 사회적 약자나 다양한 문화관에 미치는 영향을 이해해가는 중이다. 우리는 성장해나가며 깨달은 부분에 대해서 다음 세대의 엔지니어들이 우리보다 나은 결정을 ..
Berno
흔한 컴공 출신 개발자