일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sshtunneling
- redis oss
- 쿠버네티스
- RDS
- datagrip
- ssh
- 인프런강의
- 인프런
- ssafy #싸피 #ssafy 12기 #싸피 12기 #ssafy 합격 #싸피 합격 #합격 후기
- AWS
- helm
- cloud controller manager
- EC2
- jnlp
- 워커노드
- Tunneling
- ElastiCache
- k8s
- helm-chart
- Kubernetes
- multibranch
- port forawrding
- vue3
- kaniko
- Certbot
- ingress-nginx
- ChatGPT
- elasticahe
- Docker
- argocd
- Today
- Total
목록스터디 (8)
처누

관통 프로젝트 진행 중에 게시글 등록 시 사진을 같이 등록해야하는 기능을 구현해야했다.이번 기회를 통해 사진을 저장하는 기능은 완벽하게 짚고 넘어가보자. GPT한테 사진 저장하는 방법에 대해 모든 방법을 알려달라고 물어본 결과 아래와 같은 답변을 줬다. 1. 서버 디스크에 저장 업로드된 파일을 서버의 로컬 디스크에 저장하는 방법 구현 흐름클라이언트에서 파일 업로드 요청 전송 (예: multipart/form-data)서버에서 파일을 특정 디렉토리에 저장.저장된 파일의 경로나 URL을 DB에 저장. 장점구현이 간단하고 추가적인 외부 서비스가 필요 없음.빠른 저장 및 접근 가능 단점서버 디스크 용량 제한 문제서버를 여러 대 사용하는 환경(분산 서버)에서는 파일 동기화가 어려움.@PostMapping("/up..
매번 코딩테스트 때 단골로 나오는 조합을 정리해보자. 조합은 n개의 수 중에서 m개를 고르는 경우를 말한다. 기본적으로 시간복잡도는 O(2^n)이다. 기본 구조public class Main { private static int n, m; private static int[] arr; private static boolean[] visited; private static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeni..

오류 코드보다 예외를 사용하라 오류가 발생하면 예외를 던지자. try/catch/finally 문을 적극적으로 활용하자. Try - Catch - Finally 문부터 작성하라 이 부분은 TDD와 연관되어 있다. TDD는 따로 공부하고 자세하게 정리하자. 예외에 의미를 제공하라 프리코스를 진행하면서 에러 메세지에 "[ERROR]"을 시작하는 에러문구를 작성하라는 요구 사항이 있었다. 정확히 어떤 에러인지 작성하라는 요구 사항은 없었지만 나는 어떤 에러인지 작성했다. 만약 대규모 프로젝트의 경우 에러 메세지가 없이 에러가 발생한다면 어느 부분에서 에러가 발생한지 모른다. 에러 메시지에 정보를 담아 예외와 함께 던지자. null을 반환하지 마라 구글링을 하면서 꽤 많이 봤던 문구다. null을 반환하게 되면..

어쩌면 이전 게시글인 '[Clean Code] 3장 - 함수'에도 포함될 법한 내용들이 있다. 개념은 빈 행으로 분리하라. 거의 모든 코드는 왼쪽에서 오른쪽으로 그리고 위에서 아래로 읽힌다. 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. 생각 사이는 빈 행을 넣어 분리해야 마땅하다. 패키지 선언부, import 문, 각 함수 사이에 빈 행이 들어간다. 빈 행은 새로운 개념을 시작한다는 시각적 단서다. 코드를 읽어 내려가다 보면 빈 행 바로 다음 줄에 눈길이 멈춘다. 빈 행을 빼버리면 코드 가독성이 현저하게 떨어진다. 수직 거리 함수 연관 관계와 동작 방식을 이해하려고 이 함수에서 저 함수로 오가며 소스 파일을 위아래로 뒤지는 등 뺑뺑이를 돌았으나 결국은 미로 같은 코드..

우테코 프리코스에서 매 주마다 공통 피드백을 해주었는데 그 때마다 언급되는 피드백은 함수였다. 공백 라인을 의미 있게 사용한다. 한 함수가 한 가지 기능만 담당하게 한다. 함수가 한 가지 기능을 하는지 확인하는 기준을 세운다. 함수(메서드) 라인에 대한 기준(15라인이 넘어가지 않도록 구현한다.) 위 사항들이 우테코 피드백 내용 중 일부분이다. 그만큼 클린 코드를 위해서는 함수를 읽기 쉽게 구현해야한다는 것을 알 수 있다. 작게 만들어라! 프리코스를 마주하기 전 내가 지금까지 구현했던 모든 코드들은 엉망진창이었다. 15라인을 훌쩍 넘기는 것은 물론이고, 내가 구현한 코드임에도 불구하고 며칠 후에 다시 보면 무슨 의미인지도 모를 코드들이 대다수였다. 아무리 복잡한 요구 사항이더라도 메서드를 나누고 if/e..

의도를 분명히 밝혀라. public List getThem() { List list1= new ArrayList(); for (int[] x : theList) if (x[0] == 4) { list1.add(x); } return list1; } 위 코드 문제점은 코드 맥락이 코드 자체에 명시적으로 드러나지 않는다. theList에 무엇이 들었는가? theList에서 0번째 값이 어째서 중요한가? 값 4는 무슨 의미인가? 함수가 반환하는 list1을 어떻게 사용하는가? 위 코드엔 이와 같은 정보가 드러나지 않는다. 하지만 정보 제공은 충분히 가능했었다. 지뢰찾기 게임을 만든다고 가정하자. public List getFlaggedCells() { List flaggedCells = new ArrayLis..
Enum이란? - Enum은 열거형이라고 하며 관련이 있는 상수들의 집합이다. 과거엔? 과거에는 아래와 같이 상수값들을 메서드 내에서 따로 선언해서 사용했다. public static final int MONDAY = 1; public static final int THUESDAY = 2; public static final int WEDNESDAY = 3; public static final int THURSDAY = 4; public static final int FRIDAY = 5; public static final int SATURDAY = 6; public static final int SUNDAY = 7; 하지만 이러한 상수 선언은 다음과 같은 문제점을 가진다. 타입 안정성을 보장할 수 없다..
코딩테스트 준비를 하면서 자주 사용했던 Array와 ArrayList의 차이가 무엇일까? 생각나는건 Array 배열은 크기가 고정되어있고, ArrayList는 크기가 유동적이라는 것이다. 둘의 차이가 이 뿐이진 않을거 같아서 찾아봤다. Array와 ArrayList의 차이 Array : 같은 데이터 타입의 변수들로 이루어진 자료구조 ArrayList 자바에서 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 Collection Framework라고 한다. 이러한 Collection Framework 자바의 인터페이스를 사용하여 구현되며, List는 Collection Framework의 주요 인터페이스 중 하나이다. List 인터페이스는 순사거 있는 데이터 집합으로..