
1. String 자바에서 사용되는 String의 가장 큰 특징은 불변이라는 것이다. String 객체가 한번 생성되면 그 객체는 더 이상 수정할 수 없다. String 객체를 생성하는 방법은 아래와 같다. String str = "ABC"; // or String str = new String("ABC"); 앞서 언급한 것처럼 불변이기 때문에, 멀티쓰레드 환경에서 데이터 불일치에 대한 우려가 없기 때문에 사용하기 적합하다. 다만, 수정이 필요한 새 String을 생성해야 한다는 불편함도 있다. 때문에, 큰 문자열로 작업하거나 많은 수정을 수행할 때 비효율적으로 동작하게 된다. 2. StringBuffer Java 1.4까지는 문자열을 다루기위해서 StringBuffer가 유일한 방법이었다고 한다. St..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120888 2. 풀이 코테에서 중복을 한번에 처리하는 Set은 흔하게 사용되는데, 이번 문제는 선입선출이 필요했다. 즉, 순서가 있다는 말인데 Set은 순서를 보장하지 않는다. 다행히 자바에서는 LinkdedHashSet이라는 순서를 보장해주는 Set 자료구조가 있어 이를 활용해 풀었다. 다른사람 코드를 둘러보던 중 chars가 stream처럼 동작한다는 걸 알게되었다. 그리고 확실히 stream게열이 자바에서는 직관적이고 좋은 개발방법인것 같다. String의 세부사항을 처리하는데 활용해봐야겠다. 너무 오랜만의 코테라 레벨 0부터 감을 잡아가고 있는데, 생각보다 공부가 많이 된다. 3. ..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120907 2. 풀이 직전에 풀었던 풀이와 동일한 스타일로 풀었다. 가장 일반적인 접근은 공백(" ")으로 split을 한후 고정된 위치의 값을 얻고, 비교하면 것이다. 내 답안의 코드를 보면 알 수 있지만, 런타임 에러가 나는 경우는 15 - -5 = 10 위와 같은 테스트케이스가 들어오면 런타임 에러가 나니 주의가 필요하다. 개인적으로 스트림을 좋아하는데 인상깊었던 답안은 진짜 일반적인 자바코드에서 보기 어려운 길고긴 스트림을 썼다. 나도 저렇게 쓸 수 있는 날이 올까? 3. 코드 내 답안 import java.util.*; class Solution { public String[] s..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120902 2. 풀이 어떻게 처리해야하나 고민을 많이하다가 그냥 쌩노가다를 박은 문제 String 타입의 마이너스 기호(-)가 붙은 문자열을 parseInt하면 그냥 음수로 저장되는 것까지는 이미 알고 있었지만, 앞뒤로 붙은 공백을 제어하지 못했다. 그래서 싹날리고 풀었다. 내 답안은 생각가는 대로 짜서 읽기는 쉽다. 그리고 개인적으로 인상 깊었던 풀이하나를 더 첨부한다. stream을 사용했고, 음수를 위한 처리와 자연수화 하는 과정이 정말 마음에 들었다. 3. 코드 내 답안 import java.util.*; class Solution { public int solution(String..

GIT LFS(Large File Storage)란? 앞서 다뤘던 git은 소프트웨어 개발 프로젝트를 관리하는 데 범용적으로 사용되는 버전 제어 시스템(Version Control System)이다. 하지만 소스 코드들을 담고 있는 여러 개의 작은 텍스트 파일만 처리하도록 설계되었다. 때문에 프로젝트 내의 리소스 파일의 크기가 클 경우 문제가 될 수 있는데, 이 프로젝트를 git으로 관리 할 경우, 이력 파일의 크기도 함께 늘어나게 되어 git clone, git pull 동작 시 프로젝트를 불러오는데 오랜 시간이 걸리는 문제가 발생한다. (이때 시간만 오래걸리면 다행이다. 저장소로 사용되는 서버가 죽는 경우도 발생한다고 한다.) 이를 위해 remote 저장소에서 대용량의 파일 원활히 다루기 위해, 해당..
branch 란? 모든 버전 관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. 위는 git-book에서 설명해 놓은 branch에 대한 설명이다. git의 branch는 다른 VCS들과의 몇 가지 차이 점을 가진다. 매우 가볍다 나중에 merge하도록 권장 "나중에 merge" 가 다른 VCS와 가장 큰 차이라 생각하면된다. 거기다 branch에서 작업하고 main branch에 반영할 때, pull request라는 메인 작업자의 허락이 떨어져야 main branch에 반영이 되는 기능도 제공한다. 이 외에도 여러가지 ..

앞서 git을 정리하면서 git ignore와 git reset을 그냥 넘어갔다. 짚고 넘어갈 내용이 많아서 챕터를 빼서 정리해보려고한다. 파일 무시하기(gitignore) Git Working Directory 아래에서 작업을 하다보면 의도하지 않은 파일이 생성되어 Untraked 상태로 나타나게 된다. 보통 로그 파일이나 빌드 시스템이 자동으로 생성한 파일이 그렇다. 이러한 경우 .gitignore 파일을 이용해 해당 파일을 자동으로 무시하도록 설정할 수 있다. .gitignore 파일의 경우 다음과 같은 규칙을 따른다. ## '#'로 시작하는 라인은 무시한다. ## 애스터리스크(*)는 문자가 하나도 없거나 하나 이상을 의미 ## [abc]는 중괄호 안에 있는 문자 중 하나를 의미 ## 물음표(?)는..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120911 2. 풀이 솔직히 어려운 문제는 아닌데 최종 return을 위해 String으로 만드는 방법들이 재밌어서 정리해봤다. 나도 나름 괜찮게 짰다 생각하는데 다른사람 답중에 꽤나 인상깊은게 있어서 추가했다. 3. 코드 내 답안 import java.util.stream.Collectors; import java.util.*; class Solution { public String solution(String my_string) { String[] arr = my_string.toLowerCase().split(""); return Arrays.stream(arr).sorted().co..
- Total
- Today
- Yesterday
- AOP
- JWT
- cache
- docker
- lambda
- 티스토리챌린지
- ecs
- 스프링부트
- 인프런
- terraform
- EKS
- java
- 오블완
- CloudFront
- elasticsearch
- OpenAI
- GIT
- ChatGPT
- 후쿠오카
- Spring
- Redis
- AWS EC2
- S3
- CORS
- springboot
- 람다
- AWS
- Kotlin
- Log
- serverless
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |