99클럽 코테 스터디 2일차 TIL + 피보나치 비스무리한 수열
·
📝 끄적끄적/항해99 코테 스터디
https://www.acmicpc.net/problem/14495 - 오늘의 학습 키워드DP, 피보나치 응용 - 풀이 f(n) = f(n-1) + f(n-3)이라는 점화식을 기반으로 dp[] 배열을 만들어서 반복문으로 값을 계산초기값 f(1), f(2), f(3)는 모두 1로 고정되어 있으므로, 4부터는 점화식에 따라 누적 계산시간 제한이 넉넉하므로 재귀 대신 반복문을 사용해 효율적인 풀이 구현 - 오늘의 회고처음엔 기존 피보나치처럼 f(n) = f(n-1) + f(n-2)일 줄 알았지만, 이 문제는 f(n-3)이 포함된 특이한 점화식이었다.단순 재귀로 풀려고 하면 호출이 너무 많아져서 시간 초과가 날 것 같았다 그래서 메모이제이션 없이 반복문으로 dp[] 배열에 값을 저장하면서 계산하는 방법을 사용했..
99클럽 코테 스터디 1일차 TIL + 소수 구하기
·
📝 끄적끄적/항해99 코테 스터디
https://www.acmicpc.net/problem/1929   - 오늘의 학습 키워드에라토스테네스의 체 (소수 판별 알고리즘)- 풀이M 이상 N 이하의 모든 소수를 출력해야 하기 때문에,일일이 하나씩 검사하면 시간 초과가 날 수 있어서 효율적인 소수 판별 방법인에라토스테네스의 체 알고리즘을 사용해야 한다. import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int M = sc.nextInt(); // 시작 값 int N = sc.nextInt(); // 끝 값 // 소수 판별을..
인상깊었던 컨퍼런스 세션, 기술블로그 저장
·
📝 끄적끄적
고르곤졸라는 되지만 고르곤 졸라는 안 돼! 배달의민족에서 금칙어를 관리하는 방법Spring Batch 애플리케이션 성능 향상을 위한 주요 팁 (김남윤, Yun)흠 봤던거 다 북마크에 넣으니 복잡해서 어떻게 정리할까 고민중... 옵시디언에 넣을까
여행 동행 참여에 대해 동시성 문제 해결하고 성능 비교 해보기
·
💻 Dev/Spring
개요현재 여행 동행 모집 프로젝트를 진행하는 중에, 동행 참여에 대한 동시성 이슈가 발생했다. 1. 동시성 문제 발생 원인여행 동행 모임 참여 로직은 다음과 같다.멤버가 우동(동행 모임)에 대해 참여 요청을 보낸다.참여할 수 있는지 유효성 검증을 한다. (인원 체크, 기존 참여 여부 확인 등)우동에 대기자로 등록한다.관리자가 승인하면 동행에 최종 참여된다.한 우동에 대해 대기자는 최대 5명만 가능하기 때문에, 처음에는 대기자 객체를 생성할 때 대기자 수를 체크했다.public class WaitingMember { public static WaitingMember of(Udong udong, Long memberId, int currentWaitingMembersCount) { ..
[F-Lab] 16주차 회고
·
📝 끄적끄적/F-Lab
사전 질문괜찮은 스타트업 찾는 법동시성 제어 관련 접근법 질문락 주체가 Udong인 이유 + 객체지향적 관점과 동시성 해결의 충돌…락 트랜잭션 이해했는지 확인받기같은 멤버에 대해서 중복 참여 막는 법 이런 식으로 하면 될는지+멱등키?락 비교 테스트 관련사전 학습이론김영한 님 스프링 핵심 원리 고급 편 섹션 1, 2, 3박우빈 님 테스트 주도 개발 3, 4, 5프로젝트우동 참여 요청에 대한 동시성 제어 마무리 멘토님 질문낙관적 락/비관적 락에서 순서가 깨지는 상황이 언제라고 생각하시나요?동시성 이슈에서 가시성 문제와 원자성 문제Atomic 키워드, CAS 알고리즘SynchronizedList vs CopyOnArrayList ConcurrentHashMap vs HashMapQueue vs Blocking..
[F-Lab] 백엔드(BackEnd) 코스 3개월 솔직후기
·
📝 끄적끄적/F-Lab
3개월 동안 뭘 했을까조금 늦게 작성하는 감이 있지만... 그만큼 프로젝트에 집중하고 있다는 것^^!자세한 내용은 1개월, 2개월 차 후기에 이미 작성했으니까, 이번엔 간단하게 정리해 보자면,한 달 차까지는 자바 이론 공부를 정말 힘들게 했고, 이후부터는 프로젝트 기획부터 구현까지 이론과 병행해서 진행했다. 지금은 프로젝트 핵심 기능을 끝내고, 동시성 관련 이슈들을 해결하고 있는 중이다.거의 마무리 단계인데, 여태 했던 것 중에 제일 어려운 구간인 것 같다.그리고 왜 서비스 기업에서 개발자의 역량을 CS, 기본기에서 본다는 건지 이제야 진짜 체감했다.3개월 동안 쌓아왔던 이론 공부를 전부 다 써먹고 있다.앞에서 제대로 이해하지 못했다면, 동시성 이슈 해결은커녕 아예 접근조차 못했을 거다.설령 어떻게든 해..