전체 글

개발, 일상 등 나에 대한 모든 것을 기록합니다.
프로그래밍/Network

Cookie와 Web Storage

Cookie란? 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청시에 저장된 데이터를 함께 전송한다. 쿠키는 두 요청이 동일한 브라우저에서 들어와는지를 판단할 때 주로 사용하는데, 이를 이용하여 로그인 상태를 유지할 수 있다. 쿠키를 사용하는 목적 세션 관리 (Session Management) : 서버에 저장해야 할 로그인, 장바구니 등의 정보 관리 개인화 (Personalization) : 사용자 선호, 테마 등의 세팅 트래킹 (Tracking) : 사용자의 행동을 기록하고 분석하는 용도 과거엔 클라이언트 측에 정보를 저장할 때 쿠키를 주로 사용하였다. 하지만 지금은 Modern Storage APIs를 사용하여 정보..

프로그래밍/발생한 에러들

[Android] 카카오지도 API 호출 시 앱이 꺼짐

카카오 지도 API 호출 에러 안드로이드 앱 개발중에 카카오 지도 API를 호출하였는데 앱이 자꾸 종료되었다. 밑에서부터 주석처리하며 찾아보니 지도를 가져오기 위해서 MapView를 인스턴스화 시켜줘야하는데 여기서 실행이 중단되고 있었다. 근데 빌드를 봐도 아무 문제가 없다. 너무 잘 돌아가서 탈이다.... 뭐가 문제일까 싶었다가 해쉬값 찾을때 사용했던 Logcat을 한번 보았다. Logcat을 사용하자마자 바로 에러의 정체를 알았다... 요런 에러가 뜨는데 4번째 줄에 있는 UnsatisfiedLinkError를 구글링 해보니까 원인을 바로 찾았다. 결론 가상 에뮬레이터에서는 카카오지도 API가 호출되지 않는 것이었다. (...) 이거 하나 때문에 밤샜는데...ㅂㄷㅂㄷ 즉, AVD는 x86이므로... ..

카테고리 없음

티스토리에 Github commit contributions 출력하기, 깃허브에서 3d로 보기

티스토리 새단장을 하면서 장난질좀 해보았다. 내 깃허브 커밋 그래프를 티스토리에 표현해보고 싶었다. 그래서 구글링도 하며 찾아가며 만들어보았다. 총 2곳에 커밋 그래프를 넣어놓았다. (사이드바, 메인페이지) 위의 사진처럼 하기 위해서 두가지 API를 사용했다. github-calendar API (https://github.com/Bloggify/github-calendar) githubchart API (https://github.com/akerl/githubchart) 그리고 사용하지는 않았지만 이런 API도 있더라 https://github.com/bachvtuan/Github-Contribution-Graph 이걸 응용하면 엄청 멋지게 나오게 할 것 같은데... 이건 나중에 개선할 때 생각해보아야..

카테고리 없음

[Windows] Windows Terminal

윈도우에는 CMD와 Windows PowerShell라는 터미널 프로그램이 있다. 하지만 마이크로소프트 스토어에서 Windows Terminal이라는것이 있다는데 git bash 등 여러가지 터미널을 이 윈도우 터미널을 통해서 편하게 관리할 수 있다고 한다. 요즘 윈도우와 맥의 차이에 대해서 조금씩 관심을 가지고 찾아보기도 하는데 윈도우도 점점 개발자에게 친화적으로 바뀌어나가고 있다는 느낌이 든다. 안그래도 윈도우에 익숙한 나는 굳이 맥북을 사서 적응하기 보다는 이러한 것들을 사용해보면서 윈도우를 맥처럼 쓰면 어떨까 싶다. (물론 ios 개발은 안되지만...ㅠㅠ) 1. cmd 아마 윈도우 사용자들이라면 ipconfig 등 여러가지 명령어를 쓸 때 친숙한 그 터미널 프로그램이다. 하지만 cmd는 유닉스 기..

프로그래밍/발생한 에러들

[Springboot] MediaType.APPLICATION_JSON_UTF8 is deprecated

Springboot를 공부 중에 테스트코드를 돌리는데 에러가 떴다. 당연히 deprecated 된 코드를 사용했으니 에러가 뜨는것이다 ㅎㅎ... 스프링부트 2.2.*부터 MediaType의 UTF인코딩 상수는 depracated 됐다고 한다. MediaType.APPLICATION_JSON_UTF8을 MediaType.APPLICATION_JSON으로 바꿔주면 된다.

프로그래밍/발생한 에러들

intellij output에서 한글 깨지는 현상

테스트 코드를 작성하고 실행 시키는데 자꾸 한글이 깨지는 현상이 발생했다. 구글링하여 해결하였다. 맥이든 윈도우든 shift를 두번 누르면 검색창이 뜨는데 vm을 검색하면 아래와 같이 나온다. Edit Custom VM Options를 누르면 idea64.exe.vmoptions 라는 파일이 나오는데 맨 아래에 -Dfile.encoding=UTF-8 을 작성해주고 저장한다. 그리고 인텔리제이를 재실행하고 코드를 돌려보면 output에서 한글이 제대로 출력되는것을 확인할 수 있다.

프로그래밍/발생한 에러들

(미해결)[Springboot] DefaultSerializer requires a Serializable payload but received an object of type

Caused by: java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable payload but received an object of type [com.jojoldu.book.springboot.config.auth.dto.SessionUser] at org.springframework.core.serializer.DefaultSerializer.serialize(DefaultSerializer.java:43) ~[spring-core-5.3.9.jar:5.3.9] at org.springframework.core.serializer.Serializer.serializeToByteArray(Serializer.java:..

Language/TIL

JS, TS에 관하여 - 김민태의 프론트엔드 아카데미

1. Javascript 변천사 1-1. Javascript 버전 1995년, 파이어폭스 브라우저의 전신인 NetScape 브라우저에 LiveScript라는 이름으로 처음 탑재됨 (초기에는 HTML을 간단하게 조작하기 위해 만들어진 프로그램이었다.) 1996년 8월, Internet Explorer에 Jscript라는 비슷한 기능의 스크립트 언어가 탑재됨. 1-2. ECMAScript 1997년, EcmaScript가 처음 나왔고 2009년까지 12년동안 EcmaScript5까지 버전 업데이트됨 2. 웹앱의 구성요소 2-1. 웹앱의 기본 구성요소 - HTML, CSS, Javascript HTML → 기본적인 UI를 만들어줌 CSS → 그 UI의 비주얼적인 요소들을 담당함 Javascript → 동적인,..

프로그래밍/Network

[Network] TCP/IP (1)

TCP/IP란? 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약이다. TCP, IP 두가지의 프로토콜로 이루어져 있다. 프로토콜 : PC와 스마트폰 등이 통신하는 규칙 네트워크 아키텍처 : 복수의 프로토콜을 조합한 것 (네트워크 아키텍처는 우리가 사용하는 언어에 해당한다.) 현재는 TCP/IP만 거의 사용한다. TCP/IP의 계층구조 TCP/IP는 OSI 7계층 중 4계층으로 이루어져 있다. (7계층은 실무에서 사용하는 경우가 없으므로, 자세히 다루지 않겠다.) 웹 액세스의 프로토콜 조합 데이터를 전송하는 역할을 하는 계층 네트워크 인터페이스층 : 같은 네트워크 안에서 데이터를 전송하는 층 하나의 네트워크는 [라우터]와 [레이어2 or 3 스위치]로 구획하는 범위이다. - 인터넷층 : 네트..

Language/Python

[Python] 파이썬 스타일 가이드 (PEP 8)

이름 이름 규칙 변수나 함수명에 대해서 카멜표기법, 파스칼표기법은 지양한다. 파이썬은 스네이크 표기법을 지향한다. # bad myName = "giwon" def getName(): print("Hello") # good my_name = "giwon" def get_name(): print("Hello") 상수도 마찬가지로 스네이크 표기법을 사용한다. # bad thisIsPi = 3.14 ThisIsPi = 3.14 this_is_pi = 3.14 # good THIS_IS_PI = 3.14 의미 있는 이름 # bad (의미 없는 이름) a = 2 b = 3 c = a * b print(c) # good (의미 있는 이름) weight = 2 height = 3 area = weight * heigh..

Language/JavaScript

ES6 문법

호이스팅 : var선언부, 함수선언부를 최상단 스코프로 끌어올린 후 동작하는것을 말하는 가상의 개념 (실제로 일어나지는 않는다.) 변수를 선언부 할당부로 나누어 선언부만 수집. 변수가 함수 내에서 정의되었을 경우 : 선언부만 함수의 최상위로. 변수가 함수 바깥에서 정의되었을 경우 : 전역 컨텍스트의 최상위로. 함수의 경우 선언문일 때 함수 전체가 수집. 선언문 : 코드가 실행되는 런타임시에 이미 함수 객체가 생성되어 있고, 함수 이름과 동일한 식별자에 할당까지 완료된 상태. 표현식 : 함수가 아닌 var 키워드를 사용한 변수의 선언부가 호이스팅되므로 Type Error. 호이스팅 참조 사이트 : [https://velog.io/@kiki/귀여운포미와함께하는JS](https://velog.io/@kiki/..

프로그래밍/객체지향 설계

[오브젝트] 10장. 상속과 코드 재사용

디자인 패턴 소프트웨어에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결 방법 다양한 변경을 다루거나 협력을 일관성 있게 만들기 위해 재사용할 수 있는 설계의 묶음 디자인 패턴의 목적 : 설계를 재사용하는 것 프레임워크 설계와 코드를 재사용하기 위한 것 어플리케이션의 아키텍쳐를 구현 코드의 형태로 제공 각 애플리케이션의 요구에 따라 적절하게 커스터마이징할 수 있는 확장 포인트를 제공 일관성 있는 협력을 제공하는 확장 가능한 코드 1. 디자인 패턴과 설계 재사용 소프트웨어 패턴 패턴의 핵심적인 특징 패턴은 반복적으로 발생하는 문제와 해법의 쌍으로 정의된다. 패턴을 사용함으로써 이미 알려진 문제와 이에 대한 해법을 문서로 정리할 수 있으며, 이 지식을 다른 사람과 의사소통할 수 있다. 패턴..

Giwonnnnnnn
기록하는 곳