일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 추상화
- 객체지향
- npm
- bfs
- CSS
- 상속
- process.env
- dfs
- Java
- GOF
- github
- dotenv
- 메모이제이션
- 클라우드
- 캡슐화
- PostgreSQL
- AOP
- 서브셋폰트
- package
- 다형성
- Secret
- 디자인 패턴
- azure
- MariaDB
- git
- netlify
- Solid
- 동적계획법
- mock
- DP
- Today
- Total
목록분류 전체보기 (86)
이것저것 해보기🌼
유형 : 스택 문제 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있..
유형 : 구현 문제 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 ..
유형 : DFS/BFS 문제 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.) 그림에 몇 개의 영역이 있는지와 가장 큰 영역의 넓이는 얼마인지 계산하는 프로그램을 작성해보자. 위의 그림은 총 12개 영역으로 이루어져 있으며, 가장 넓은 영역은 어피치의 얼굴면으로 넓이는 120이다. 입력 형식 입력은 그림의 크기를 나타내는 m과 n, 그리고 그림을 나타내는 m × n 크기의 2차원 배열 picture로 주어진다. 제한조건은 ..
디자인 패턴이란? 자주 사용하는 설계 패턴을 정형화해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계 알고리즘과 유사하지만, 명확하게 정답이 있는 형태는 아니며 프로젝트 상황에 맞추어 적용가능하다. 장점 - 개발자 간의 원활한 소통 - 소프트웨어 구조파악 용이 - 재사용을 통한 개발시간 단축 - 설계변경 요청에 대한 유연한 대처 단점 - 초기투자비용 부담 Gof 디자인 패턴 소프트웨어를 설계할때 기존 경험 등 지식을 공유하기 위해 나온 디자인 패턴. 유용한 설계를 디자인 패턴으로 정리해둔것으로, 23개의 패턴이 있다. 크게 3가지로 나눌수 있다. 1. 생성패턴 객체를 생성하는 것과 관련된 패턴 ex) Factory Method, Singleton, Builder, Chaining ..
객체지향이란 무엇일까? 1. 객체 지향의 등장 1970년대에 들어서 객체지향 용어가 나왔으며, 그 이전에는 순서대로 명령어를 입력해서 실행되는 절차지향이 주를 이뤘다. 간단한 Logic에서는 문제가 없었지만, 컴퓨터의 발전과 프로그램 복잡도 증가로 엄청난 비효율이 발생하게 되었다. 이런 어려움을 해결하기 위해 객체지향 특성인 추상화, 상속, 은닉, 재사용, 인터페이스 등으로 개발하게 되었다. 객체지향은 현실에 존재하는 사물을 객체라고 부르며, 해당 사물이 하는 행위를 메소드로 정의하고 해당 사물이 가지는 속성을 변수라고 정의한다. 2. 객체의 3가지 요소 1) 상태유지 상태정보를 저장하고 유지되어져야하며 변경될 수 있어야한다. 2) 기능제공 기능을 제공해야한다. (Method 제공) 3) 고유식별자 제공..
지난 시간에 실행을 위한 준비까지 마쳤으니, 이제 main method를 실행해보았다. 정상적으로 실행되면 아래와 같이 Tomcat started on port(s) : 8080 메세지가 뜨게 된다. Postman에서 request를 날려보자. 아직 구현된것이 없으니 GET으로 날려도 반응은 없지만, READ ALL이 정상호출된것은 알수 있다. 이제 TodoController를 아래와 같이 세부 작성을 완료했다. package org.example.controller; import lombok.AllArgsConstructor; import org.example.model.TodoEntity; import org.example.model.TodoRequest; import org.example.model..
필요 Tool 1) IntelliJ https://www.jetbrains.com/ko-kr/idea/ IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 2) Postman App https://www.postman.com/downloads/ Download Postman | Try Postman for Free Try Postman for free! Join 13 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster. www.postman.com 0. 프로젝트 목표 1 TO-DO LIS..
1. Live Template 기본적으로 많이 사용되는 템플릿, 구문 등에 대해 단축어를 제공한다. psvm : public static void main(){} 생성 sout : System.out.println() Ctrl + J 로 전체 제공되는 템플릿을 확인할수 있다. 2. 퀵 픽스 Alt + Enter 에러에 대해 고칠수 있는 방법 리스트를 제공한다. 3. 코드 이슈 별로 이동 F2 (앞으로), Shift + F2 (뒤로) 4. Import 최적화 Ctrl + Alt + O 쓰이지 않는 Import (회색으로 표시됨) 지워준다. 5. Getter, Setter Alt + Ins 클래스를 우클릭 후 Generate로 만들수도 있지만, 단축키를 사용하면 바로 변수에 대한 Getter, Setter를..
윈도우 환경의 IntelliJ 기본 단축키 정리 창 관련 1) Alt + 1 프로젝트 창과 에디터 창 간의 이동 2) ESC 프로젝트 창에서 ESC 누르면 프로젝트창 없애지 않고 에디터 창으로 Focus 바뀜 3) Space 프로젝트 창에서 원하는 소스에 포커스두고 Space누르면 코드를 미리 볼수 있음 4) Ctrl + Shift + F12 에디터 창만 남기기 5) Ctrl + Tab 여러 프로그램 간에 이동하기 Ctrl을 계속 누른상태로 Tab 으로 원하는 파일이 선택되면 Ctrl 을 뗀다. 6) 새파일 만들기 프로젝트 창에서 : Alt + Insert 에디터 창에서 : Ctrl + Alt + Insert 에디터, 검색 등 1) Ctrl + 좌우방향키 단어 단위로 이동 2) Home, End 문장 처..
IntelliJ 는 Java IDE로 현업에서 많이 사용하기 때문에, 이클립스 외에 처음으로 다른 툴을 설치해보게 되었다. 설치 링크 : https://www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 아쉬운 점은 Eclipse와 달리 유료이기 때문에, 30일 무료평가판이 끝나면 비용을 지불해야한다. 개인용으로는 한달에 14$ 정도여서 아주 부담되는 수준은 아니지만 아쉬운점이다. 또는 Ultimate 버전이 아닌 Community 버전으로 설치하면 무료로 이용할 수 있다. 다운로드 후 기본 설정대로 설치하고 실행해본다. 아래 화면..