전체 글
-
소프트웨어 개발 3원칙설계·방법론 2022. 6. 8. 18:46
1. DRY(don't repeat yourself): 반복하지 마라 같은 코드를 중복해서 작성하지 않고 하나의 공통 컴포넌트에서 처리한다. 중복 코드는 나중에 버그가 생겼을 때 전부 찾아서 수정해줘야 하기 때문에 유지보수가 어렵다. 2. YAGNI(you aren't gonna need it): 필요한 작업만 해라 필요하지 않은 기능을 미래를 대비해서 만들지 말고 필요한 기능만 만들어야 한다. 3. KISS(keep it simple stupid): 간단하게 만들어라 간단하고 단순할수록 이해하기 쉽고 버그가 발생할 확률도 줄어들기 때문이다.
-
Java - 불변(Immutable) 리스트 생성Java 2022. 6. 8. 18:42
불변 리스트는 아이템의 추가, 수정, 삭제가 불가능합니다. 리스트가 다른 곳에서 바뀌지 않도록 해주기 위해서 불변 리스트를 사용합니다. java.util.Collections 클래스의 unmodifiableList를 이용해서 리스트를 immutable하게 바꿀 수 있습니다. List list = Arrays.asList("A", "B", "C"); list = Collections.unmodifiableList(list); list.add("D"); // UnsupportedOperationException 발생 관련글 Java - Collections.singletonList emptyList Java - Collections.singletonList emptyList 안녕하세요. 오늘은 java.ut..
-
Java - Collections.singletonList emptyListJava 2022. 6. 8. 18:40
안녕하세요. 오늘은 java.util.Collections 프레임워크 중 singletonList, emptyList에 대해서 알아보겠습니다. List list = Arrays.asList(1); IntelliJ에서 위와 같은 코드를 작성하고 Inspect Code를 해보면 다음과 같은 warning을 알려줍니다. Reports any calls to Arrays.asList() with zero arguments or only one argument. Such calls could be replaced with either a call to Collections.singletonList() or Collections.emptyList() which will save some memory. Note: t..
-
Java - Calendar 클래스로 날짜, 시간, 요일 구하기Java 2022. 6. 8. 18:36
안녕하세요. 오늘은 자바 Calendar 클래스를 이용하여 날짜, 시간, 요일을 구하는 방법을 알아보겠습니다. import java.util.Calendar; class HelloWorld { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int date = cal.get(Calendar.DATE); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); int hour = cal.get(Calendar.HOUR); int minute = cal...
-
배민쇼핑라이브를 만드는 기술: 채팅 편 내용 정리설계·방법론 2022. 6. 8. 18:15
왜 자체 구현했는가? Sendbird나 FCM 같은 외부 메시징 서비스 도입을 검토했으나 자체 구현하는 것이 쇼핑라이브에 가장 맞는 채팅을 만들 수 있을 것 같아서 진행함 아키텍처 Redis Pub/Sub + Webflux + Websocket 구현의 방향성 1. Websocket을 최소한 사용한다. 복잡성이 늘어나기 때문에 REST API로 가능한 것들은 소켓 사용을 하지 않음 2. RDB 직접 접근을 배제한다. Webflux랑 JDBC를 사용하면 non-blocking의 이점을 얻지 못하기 때문에 Redis를 사용함 시행착오들 WebSession 사용으로 인한 장애 어드민 장애 컴포넌트 렌더링 회수를 줄이는 방향으로 변경 출처 https://techblog.woowahan.com/5268/ 배민쇼핑라..
-
git - commit한 것 되돌리기Git 2022. 5. 31. 18:58
브랜치 관리를 하다보면 이미 remote branch에 커밋한 내용을 원복하고 싶은 경우가 있습니다. 이럴때 사용할 수 있는 git revert 명령어에 대해서 알아보겠습니다. first라는 commit을 했는데 이것을 원복하고 싶은 경우입니다. test@iMac demo % git log --oneline 1dc73d5 (HEAD -> master, origin/master) first 4ac8c30 init 마지막 커밋 1dc73d5에 대해 패치 파일을 생성합니다. test@iMac demo % git format-patch -1 1dc73d5 0001-first.patch git apply 명령어를 통해서 패치 파일을 commit합니다. (commit 내용은 1dc73d5 내용 원복) git sta..