| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- builder
- spring security
- OAuth 2.0
- Volatile
- synchronized
- 일급 컬렉션
- Spring
- Google OAuth
- lombok
- Dependency Injection
- java
- 일급 객체
- factory
- Today
- Total
목록분류 전체보기 (179)
HJW's IT Blog
Staticjava 관점으로 static 은 ‘클래스의’ , 공통적인 이라는 의미를 가진다이러한 개념을 이해하기 java가 어떤 방식으로 동작하는지를 알 필요가 있다java application 을 실행하면 JVM 은 OS 로부터 메모리를 할당한다java 컴파일러가 java 소스코드를 바이트코드로 컴파일한다클래스 로더를 통해 JVM 메모리로 로딩한다로드된 클래스 파일들은 기계가 읽을수 없으므로 execution engine 을 통해 기계어로 변환된다이 과정에서 실행엔진에 의해 garbage collector 등도 동작된다즉, 자바는 용도에 따라 여러 영역으로 나누어 메모리를 관리한다. 메소드 영역 → 클래스 파일을 읽어 데이터를 저장하는 영역힙 영역 → 인스턴스가 생성되는 공간이다호출 스텍 → 메소드의 ..
Node.js 백엔드 개발자로 진로를 정했다 보니, javascript를 사용한 코테도 준비해야겠다는 생각이 들었다. 기존에 준비하던 C++ 에서 js 에 적응하려다 보니 어려운 것이 한두가지가 아닌것 같다.문제 분석우선, 참가자들이 상담을 요청할 때 가능한 가장 빠른 시간에 상담을 받을 수 있도록 멘토를 배정해야 한다. 이 문제의 핵심은 각 상담의 종류별로, 가장 먼저 끝나는 상담 시간을 사용하는 것이다.다음을 유의하여 풀어보자.맨토는 n 명이 있다상담의 종류는 k개가 있다멘토는 자신이 담당하는 유형의 상담 외에 다른 유형의 상담은 불가능 하다멘토는 한번에 한명만 상담이 가능하다상담이 끝났을때, 대기중인 인원이 있다면 해당 참가자와 상담을 시작한다.각 유형별로 멘토는 최소 1명 이상이어야 한다.문제 접..
24일 기록group 내용 수정 관련 API 를 만들었다. DTO를 사용하여 데이터를 다루었는데, DTO 의 이점을 확실하게 알고 쓰는게 좋을 것 같다.Data EncapsulationType Safety데이터 구조 통일성id 를 통해 group 정보를 받아와야 하는데, 향후 또 사용될 일이 있을것 같아 findGroupById 함수를 별도의 파일에 분리하여 작성하였다.// routerrouter.put('/groups/:GID', async (req, res) => { const groupId = parseInt(req.params.GID, 10); const { name, password, imageUrl, isPublic, introduction} = req.body; try{ const..
TypeScript를 사용하는 만큼 그 이점인 객체 지향적 설계에 신경을 써서 프로젝트 구조를 설계 하였다.한가지 기능을 3파트로 나누어 작성하였다. DTO, router, controller.DTO : Data Transfer Object어플리케이션 계층간 데이터를 전송하는데 사용되는 객체이다.타입 안정성을 컴파일 타임에 검증할 수 있다유효성을 검증하여 잘못된 데이터의 전달을 막을 수 있다.Router들어오는 요청을 적절한 controller 로 매핑하고, 라우팅 로직을 관리한다API 경로가 라우터를 통해 모듈화 되어 있기 때문에, 새로운 API 를 추가하거나 기존 API에 대한 수정을 할 떄, 다른 부분과 독립적으로 수정이 가능하다Controller컨트롤러는 애플리케이션의 비즈니스 로직을 담당하며, ..
주어진 요구사항에 따라 ERD 설계를 시작하였다.만들다 보니 GROUP은 SQL 예약어이기 때문에 다른 이름으로 해야겠다는 생각이 들었다. GROUP 과 BADGE 의 관계는 N:N 관계이기 때문에, 이 두 테이블의 PK를 Composite Key 로 사용하는 GROUP_BADGE 테이블을 생성하였다.TAG 와 POST 의 관계 또한 N:N 관계이기에 Composite Key 를 생성하였다. 다음은 주요 table sql 이다. CREATE TABLE `Groups` ( `GID` INTEGER PRIMARY KEY AUTOINCREMENT, `GName` VARCHAR(100) NOT NULL, `GImage` VARCHAR(255), `GIntro` TEXT, `IsPubl..
https://school.programmers.co.kr/learn/courses/30/lessons/92345?language=cpp 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 분석이 문제는 두 플레이어 A와 B가 1x1 크기의 격자로 이루어진 보드 위에서 최적의 전략으로 게임을 진행하는 시뮬레이션 문제이다.각 플레이어는 발판이 있는 칸에만 이동할 수 있으며, 발판이 사라지는 조건에서 더 이상 이동할 수 없게 되면 패배한다.게임을 A 가 항상 먼저 시작하며, 양 플레이어는 최선 의 전략을 구사해야 한다.두 플레이어가 모두 최선의 전략으로 게임을 진..
주어진 요구사항에 따라 ERD 설계를 시작하였다. 주어진 요구사항은 다음과 같았다### 그룹**그룹 등록**- 그룹명, 대표 이미지, 그룹 소개, 그룹 공개 여부, 비밀번호를 입력하여 그룹을 등록합니다.**그룹 수정**- 비밀번호를 입력하여 그룹 등록 시 입력했던 비밀번호와 일치할 경우 그룹 정보 수정이 가능합니다.**그룹 삭제**- 비밀번호를 입력하여 그룹 등록 시 입력했던 비밀번호와 일치할 경우 그룹 삭제가 가능합니다.**그룹 목록 조회**- 등록된 그룹 목록을 조회할 수 있습니다.- 각 그룹의 이미지(한 장), 그룹명, 그룹 소개, 그룹 공개 여부, 디데이(생성 후 지난 일수), 획득 배지수, 추억수, 그룹 공감수가 표시됩니다.- 공개 그룹 목록과 비공개 그룹 목록을 구분하여 조회합니다.- 최신순,..
https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 이해우선, 문제를 풀기 위해 필요한 알고력(alp_req)과 코딩력(cop_req)이 주어지고, 현재 가진 알고력(alp)과 코딩력(cop)이 주어진다. 알고력과 코딩력을 높이기 위해서는 다음과 같은 방법이 있다:알고력이나 코딩력을 1 올리는데 각각 1의 시간이 소요된다.현재 풀 수 있는 문제를 풀어서 알고력과 코딩력을 올릴 수 있다. 문제를 풀면 정해진 시간(cost)이 소요되며, 알고력(al..
VPC를 이용한 EC2 구축AWS 로그인 후, VPC 검색VPC 생성VPC 만 을 선택하고, 이름을 영문으로 이루어진 (띄어쓰기는 하이픈 사용) 이름태그를 설정한다ip 대역 : 10.0.0.0/16 생성후, 사이드바에서 서브넷 생성 방금 생성한 서브넷을 선택하고, 서브넷 이름을 생성. 그 후, CIDR 을 10.0.1.0/24 로 생성한다. 생성완료 후, 이제 인터넷 게이트웨이를 생성해야 한다 이제 해당 게이트웨이와 VPC 를 연결해야 한다 이제 라우팅 테이블을 수정해야 한다public subnet 은 외부로 나갈때, internet gateway 를 거치게 한 라우팅을 서브넷에 연결하면 된다. 라우팅 테이블은 VPC 를 만들면 자동으로 만들어지기 때문에 수정만 하면 된다. 위 사진을 보면, 현..
정적 컨텐츠정적 콘텐츠는 모든 사용자에게 동일한 정보를 제공하는 콘텐츠로, 주로 서버에 미리 저장된 HTML, CSS, JavaScript, 이미지 파일 등을 포함한다. 이러한 콘텐츠는 웹 서버에서 직접 제공되며, 캐싱이 용이하여 사용자에게 빠르게 전달될 수 있다는 특징이 있다. 정적 콘텐츠의 장점은 빠른 로딩 속도, 높은 안정성, 그리고 보안에 유리하다는 점이다. 서버에서 미리 준비된 파일을 제공하므로 데이터 처리에 필요한 부하가 적고, 성능이 일정하게 유지된다. 또한, 캐싱을 통해 동일한 요청에 대해 더 빠르게 응답할 수 있어 사용자 경험이 향상된다. 하지만 정적 콘텐츠는 유연성이 부족하다는 단점이 있다. 콘텐츠가 고정되어 있어 사용자의 요구에 따라 동적으로 변하지 않으며, 콘텐츠 업데이트 시 번거로..