일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- #스파르타코딩클럽후기 #내일배움캠프후기
- expression statement is not assignment or call html
- Morphological analysis #Corpus
- Machine Learning
- PID
- 모바일웹스킨
- 서버사이드렌더링
- taskkill
- address
- 파이썬
- 출처: 자바의 신 8장
- khaiii
- Technical Writing
- github markdown
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- 코딩온라인
- 비동기
- 파이콘
- github
- 필사
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- SSR
- terminate
- 자바파이썬
- gitbash
- 마크다운
- Anaconda
- Kakao
- 클라이언트사이드렌더링
- 플젝후체크
- Today
- Total
목록전체 글 (130)
개발 일기
503에러란: 서비스를 사용할 수 없다는 뜻. 배포가 처음이고 전체 프로세스를 이해하지 못한 채로 이것저것 시도하다보니, 에러 디버깅도 지난한 과정이었다. 503에러를 해결해보면서 시도한 해결방법을 정리해보겠다. 1. 로컬 DB 가 아닌 Heroku Postgres 를 연결해주기. 당시 Git Action Workflow 가 제대로 run 되었기 때문에, DB 를 로컬로 설정하는 치명적인 실수(?) 를 자각하지 못하고 있었다. GIT ACTION 이 된다는 것은 설정 파일에 문제가 없다는 거지, 그게 실제로 서버가 동작하는 건 아니다. Heroku 에서 Postgres Credentials 에서 정보를 업데이트해주자. 2. procfile 을 체크하자. firebaesAdmin Key를 사용하지 않는다면..
API 서버 프로젝트를 하면서, 먼저 로그인/회원가입을 구현하고 있다. FirebaseOAuth 에서는 Client가 토큰을 headers 에 넣어서 백엔드에 보내주는 로직이 있다. 백엔드만 있는 상황에서는 이 로직을 구현할 수는 없지만, 토큰 외에 로직이 완성되었음을 테스트해야하기 때문에, 임시 방편으로 local 용 환경을 만들었다. 먼저 (1) 회원 가입 컨트롤러 (users/local이라는 APi 를 만들어준다. (2) Local 용 security Config, (3) LocalJwtfilter, (4) application-local.yml 을 따로 만들었다. 이렇게 하면 profile을 local로 설정해서 따로 테스트를 할 수 있다. 컴파일 에러는 없었는데, 포스트맨 post test 를 ..
1. 프로젝트 셋업 Google -> 사용설정 -> 프로젝트 이름/ 지원 이메일을 설정하고 저장하기. Build.gradle 에 추가해주자 implementationgroup:'com.google.firebase',name:'firebase-admin',version:'8.0.1' implementation'org.springframework.boot:spring-boot-starter-security' 시스템 -> 고급 시스템 설정 -> 시스템 속성 환경변수 -> 새로 만들기 Google credentials 키 값과 함께, 변수 값은 파일 찾아보기로 직접 넣어줘도 된다 2. FireBase 초기화, 인증 토큰 검증 FirebaseInitializer 라는 Configuration 만들고, Fireba..
접근자의 종류와 기능 접근 제어자란? 객체 지향 프로그램에서는 예약어를 사용해서 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 접근 제어자라고 한다. 접근 제어자의 종류 변수는 선언한 접근 제어자에 따라 다음과 같은 특징을 지닌다. Public: 메서드는 외부 클래스에서 접근이 가능하며, 외부 클래스가 사용할 수 있다. private: 같은 클래스내에서만 접근이 외부 클래스에서 사용할 수 없다. protected: 같은 패키지 내부와 상속 관계의 클래스에서만 접근할 수 있고 그 외 클래스에서는 접근할 수 없다. default없음: 아무것도 없을 때도 해당한다. 같은 패키지 내부에서만 접근 가능하다. private -> protected ->protected -..
오버라이딩: 상속받은 부모 클래스의 기능을 재정의한다. 용도: 상위 클래스에서 정의한 메서드가 하위 클래스에서 구현할 내용과 맞지 않을 때, 하위 클래스에서 메서드를 재정의 한다. 오버라이딩을 하려면, 반환형, 메서드 이름, 매개변수 개수, 매개변수 자료형이 같아야 한다. 그렇지 않으면 자바 컴파일러가 재정의한 메서드를 기존 메서드와 다른 메서드로 인식하기 때문이다. @Override 라는 어노테이션을 쓰면, 이 메서드가 재정의된 메서드임을 컴파일러에게 알려줄 수 있다. 만약 메서드의 선언부가 다르다면, 컴파일 오류가 발생해서 실수를 막아준다. 일반적인 주석과 다르게 검증하는 기능을 한다. 오버로딩: 상속과는 상관없고, 기존에 없던 새로운 메서드를 정의하는 것이다. 기존에 존재하는 메소드와 같은 이름의 ..
각 변수 타입이 몇 byte인지, primitive type과 reference type의 차이와 활용 변수타입을 알아야 하는 이유: 메모리에는 제약이 있기 때문이다. 메모리를 효율적으로 사용하기 위해 가장 적합한 자료형을 찾자. 똑같은 데이터를 저장하더라도, 변수 타입에 따라서 메모리 사용량이 다르다. 즉 어떤 숫자를 저장하느냐에 따라서 사용하는 메모리의 크기가 달라지는 것이 아니고, 어떤 데이터 타입으로 변수를 선언했느냐에 따라서 사용하는 메모리의 크기가 달라진다. 표현 가능 범위를 넘어서는 수를 부여하면, 오류가 뜬다. 정수형 데이터 타입 메모리의 크기 표현 가능 범위 byte 1 byte (8bits) -128 ~ 127 (2의 8승 즉 256만큼의 수를 표현할 수 있다) short 2 byte ..
정적 타입 언어와 동적 타입 언어의 차이 타입: 자료형 타입을 뜻함 정적 타입 언어: Ex: Java, C, C++ 등 String name = "tuna" Int num = 123 등 컴파일 시 변수의 자료형 타입이 결정되는 언어 변수에 들어갈 값의 형태에 따라 직접 변수의 타입을 명시해줘야 함. 컴파일 시 자료형에 맞지 않는 값이 들어있으면 컴파일 에러가 발생함. 장점: 타입 에러로 인한 문제점을 초기에 발견 가능. 타입 관련 런타임 오류 방지할 수 있다. 컴파일 시에 미리 타입을 결정하기 때문에 실행 속도가 빠르다. 코드의 가독성이 좋다. 다수의 협업, 프로젝트의 장기개발/유지보수에 유리하다. 단점: 코드 작성 시 변수형을 결정해줘야 해서 번거롭다. 동적 타입 언어 컴파일 시 자료형을 정하는 것이 ..
Firebaes로 Google OAuth를 구현하면서 스프링 시큐리티에서 사용되는 주요 개념/메서드를 정리해둔다. Spring Security Principal이란? Authorization" refers to the process of deciding whether a principal is allowed to perform an action within your application. Principal: 시스템에서 무언가를 할 권한이 있는 사용자, 디바이스 혹은 시스템. Authentication은 이 principal 이라는 객체가 어플리케이션에서 특정 행동을 할 수 있는 궈한이 있는지 확인하는 과정이다. VerifyIdToken이란? token 이 유효하다는 것을 증명하기 위해 쓰는 메서드. Fi..