일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- github
- 모바일웹스킨
- #스파르타코딩클럽후기 #내일배움캠프후기
- 코딩온라인
- 클라이언트사이드렌더링
- Machine Learning
- 플젝후체크
- PID
- 서버사이드렌더링
- gitbash
- 파이콘
- Kakao
- 필사
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- Technical Writing
- address
- Morphological analysis #Corpus
- SSR
- taskkill
- 출처: 자바의 신 8장
- Anaconda
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- github markdown
- terminate
- 파이썬
- 마크다운
- khaiii
- expression statement is not assignment or call html
- 자바파이썬
- 비동기
- Today
- Total
목록Tech (39)
개발 일기
인증/인가 기능 구현 로그인/회원가입/메인 화면을 제외하고는 인증과 인가 과정을 거쳐야 합니다. 여기서 인가는 사용자의 권한을 확인하는 작업이며, 인증은 사용자의 신원을 확인하는 작업입니다 (서버가 갖고 있는 회원 정보와 일치하는지, 즉 가입 회원이 맞는지). 유저가 상품을 주문하는 상황을 가정해봅시다. 서비스는 유저의 주문이라는 행위를 기록하기 위해, 인증을 필요로 할 것입니다. 제가 만들고 있는 서비스는 판매자만 상품을 등록할 수 있습니다. 더불어, 등록한 상품은 해당 상품을 등록한 판매자만 수정할 수 있습니다. 이 과정에서 판매자의 권한을 확인해야 합니다. 그러면 판매자는 제품을 등록하고, 수정하고, 재고를 변경할 때마다, 로그인을 해야할까요? API 를 이동할 때마다 로그인을 한다면 너무 번거롭겠..
동전 교환 문제를 풀다가, runtime Error 에 막혀서, 이번 기회에 정리해둔다. 이 글은 백준 커뮤니티 글과 https://www.acmicpc.net/board/view/22980 아래 블로그를 참고했다. https://www.secmem.org/blog/2020/09/19/rte/ 글 읽기 - 주로 런타임 에러가 발생하는 이유는 무엇인가요? 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net 동전 교환 문제를 풀다가, runtime Error 에 직면했다. 문제 출처 (자바 코딩 테스트 준비 김태원 강사님 강의) 설명 다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다. 입력..
재귀함수란? 함수가 자기 자신을 호출하는 것이다. 재귀함수를 왜 쓸까? 재귀함수는 반복이라는 면에서 for 문과 유사하다. 하지만 for 문은 for 문이 완료되고 나면, 아래 예시처럼 자료구조에(ex. stack) 저장하지 않는 이상 이전 수행 코드의 정보를 사용할 수 없다. 재귀함수를 쓰면, 운영체제가 스택메모리에 정보를 저장하기 때문에 개발자가 따로 자료구조 구현을 하지 않아도 된다 (참고) Stack st = new Stack(); for (char x : str.toCharArray()) { if (x == 'a') st.push(x); } 스택프레임이란? 스택 영역에 함수의 호출 정보가 쌓이는 것이다. 스택 영역에는 지역변수, 파라미터 등이 저장된다. StackOverFlow 에러는 DFS/재..
GC (Garbage Collection) 란? 가비지는 프로그램에서 객체를 할당했지만, 더 이상 참조되지 않는 객체입니다. 가비지들을 제거하는 작업을 가비지 컬렉션(Garbage Collection, 이하 GC) 이라고 해요. 하나의 객체는 메모리를 점유하기 때문에, 쓰지 않는 객체는 메모리 최적화를 위해 해제해주는 거죠. C언어에도 GC라는 개념이 있습니다. C언어에서는 GC 작업을 개발자가 하는 반면, 자바에서는 JVM 이 메모리 관리를 도맡아 해줘서 개발자가 편합니다. GC 의 이점? 위의 설명에서 추측할 수 있듯, 메모리 최적화가 됩니다. 그리고 GC 를 많이 할 수록, 서버의 응답시간에 영향을 미치기 때문에 성능 관리에 있어서도 중요합니다. 특히 Full GC 의 경우 속도가 매우 느립니다 (..
접근자의 종류와 기능 접근 제어자란? 객체 지향 프로그램에서는 예약어를 사용해서 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 접근 제어자라고 한다. 접근 제어자의 종류 변수는 선언한 접근 제어자에 따라 다음과 같은 특징을 지닌다. 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 ..
오랫만에 Git Repository를 생성하는데, 평소에는 못봤던 에러가 자꾸나왔다. 계속 꼬이고 꼬여서 1시간동안 삽질을 했다 ㅜ git 을 원격 리포에 연결할 때는 (1) clone (2) remote add 두 가지 방법이 있다. Git은 Init 으로 로컬 디렉토리에 git 을 만들어준다. 이후에 로컬의 파일들을 add 를 해줘야 한다. 처음보는 failed to push some refs to origin 에러여서 당황했는데 add를 안해주고 push 를 하니까 뜨는 메시지이다. 왜인지 default 로 master branch 로 자꾸 생성이 되고, rename을 하면 저장소에 push 가 안됐다. 그런데 생각해보니, 인텔리제이에 git 연동 기능이 있을 게 분명했다. 1시간 삽질은 인텔리제이..