전체 글

흔한 컴공 출신 개발자입니다. 제가 경험하고 공부하고 아는 것을 적어둡니다.
· JAVA
https://board.f-lab.kr/articles/1 🧑‍💻 자바 백엔드 기술 면접 대비하기 - 1편 🧑‍💻 자바 백엔드 기술 면접 대비하기 - 1편 board.f-lab.kr 자바의 모든 클래스는 Object 클래스를 상속받습니다. 그리고 Object클래스에는 equals() 와 hashCode() 라는 메소드가 선언되어 있습니다. 이 메소드들은 각각 어떤 역할일까요? 이 둘의 차이점은 무엇일까요? 답 : equals는 두 객체가 정말 동일한지를 확인합니다. 내부 값이 아닌 정말 참조하는 메모리가 같은지 확인합니다. hashCode는 참조하고 있는 메모리의 주소를 반환합니다. 즉 equals는 hashCode끼리 비교하는 것과 동일합니다. hashCode는 객체의 메모리 주소를 리턴합니다. 반론..
· JAVA/Kotlin
코틀린하다가 데이터 타입에 Number도 있고 Int도 있길래 3분정도 혼란이 왔다가 코드로 확인하니 바로 이해가 되더라. 코틀린에서 숫자 관련된 모든 데이터 타입들은 Number클래스를 상속받은 클래스들이였다. Int 타입을 확인하면 아래와 같이 Primitive.kt 파일에 정의가 되어있다. Number클래스를 상속받고 있는데 Number는 아래와 같이 구현되어있다.
이제 부업으로 코딩 과외도 해보려고 자바/코틀린에 대해 자료를 준비하고 있다. 어떻게 해야 지치지 않고 흥미를 유지할 수 있을까 고민하던 중 역시 공감대가 있어야 괜찮을 것 같다는 생각에 클래스에 대한 개념까지는 롤을 가지고 해보기로 결심했다.
0. 이 글을 왜 작성하는가 한국에 있는 아티클 중 이 주제에 대해서는 사용하지 말아야 한다는 사람들이 없었다. 나는 그 주제들에 대해 크게 공감할 수가 없어 해외 아티클을 찾아보기 시작하였고 심심찮게 getter/setter를 피하라는 글을 볼 수 있었다. https://www.infoworld.com/article/2073723/why-getter-and-setter-methods-are-evil.html https://dev.to/scottshipp/avoid-getters-and-setters-whenever-possible-c8m https://ericnormand.me/podcast/why-getters-and-setters-are-terrible 1. 본문 우선 getter/setter는 객..
· JAVA/android
뷰 바인딩 공식 도큐먼트 : https://developer.android.com/topic/libraries/view-binding?hl=ko 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성합니다. 바인딩 developer.android.com 뷰 바인딩이란? 쉽게 생각하면 View를 Object화 시켜서 바인딩한다고 생각하면 된다. 이렇게 바인딩한 Object는 코드 내에서 쉽게 접근할 수 있다. findviewbyid와의 차이는? 뷰 바인딩으로 findviewbyid를 대체할 수 있고 findviewb..
· 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..
Berno
흔한 컴공 출신 개발자