목록전체 글 (248)
일단 씻고 나가자
2023. 06. 12 수요일 - [Effective Java] 동시성으로 일어날 수 있는 문제? Java 및 Spring에서의 해결법과 설명?: 동시성이란 같은 자원에 각기 다른 스레드 및 프로세스가 접근하여 자원이 최신화되기 전에 서로 자원을 갱신하여 올바른 로직을 수행하지 못하는 현상으로, 갱신 손실 문제를 유발한다. Java는 전통적으로 synchronized라는 키워드를 제공한다. 단, 해당 키워드는 성능 문제가 있을 뿐 아니라, 하나의 프로세스 내에서만 동시성을 보장하기에 실무에서의 scale up 된 하나 이상의 서버에서 작동하지 못한다. 또한 Spring에선, sychronized는 메서드 시그니처가 아니기 때문에 Spring의 @Transactional과 함께 사용할 경우 Spring의 ..
2023. 06. 10 월요일 - [Effective Java] Checked/Unchecked Exception 설명? 차이? 주의점?: Checked란 try-catch 등으로 에러 처리를 명시해야 할 Exception, Unchecked란 그러지 않아도 될 Exception이다. Checked에는 주로 IO, SQL Exception이 속하며 Unchecked에는 RuntimeException 및 하위 Exception이 속한다. Error는 시스템적 오류를 뜻한다. 스프링의 기본 방식에 따르면 transaction에 대해Checked는 rollback 하지 않음을, Unchecked는 rollback함을 기본값으로 둔다.다만 이는 Spring의 기본값일 뿐이며, 개발자는 스프링에선 @Transac..

진짜 별 난리를 치고 허우적거리다 겨우 푼 문제. 안 풀려서 미루고 미루다가 거진 6개월만에 풀었지 싶다.. 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Problem 간단하게 과제 더미가 있고, 완벽주의자 J의 성향을 가진 '루' 라는 친구가 수많은 과제를 어떤 순서로 마치는지 맞혀보라고 골치를 썩이는 문제이다. 각 과제는 문자열 배열에 ["과제 이름", "과제 시작 시간", "과제가 걸리는 시간"] 으로 정보가 담기며, ..

수학적인 직관만 있다면 쉽게 아이디어를 얻고 풀이할 수 있는 문제. 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Problem 정수 n, s 가 주어지며, 's 가 베이스가 되는 특정 조건'에 해당하는 n 개의 0이 아닌 자연수를 찾으면 되는 문제이다. 이때 n 개의 문자는 배열로 return 해야 하며, 오름차순으로 정렬 후 제출해야 한다. '특정 조건' 이란 n 개의 숫자 합이 s 가 되면서, 각 숫자들의 곱이 최댓값이 되..

시간이 좀 많이 걸렸는데 괜찮나..? 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/1835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Problem 8명이 사진을 찍는데, 모든 경우의 수 중에서 data 에 주어진 조건이 모두 성립하는 경우의 수는 총 몇 가지가 있느냐 물어보는 문제이다. 주요 포인트는 다음과 같다. 8명이 전부 사진에 담겨야 한다. (7명, 6명.. 의 경우의 수는 존재할 수 없고, 중복되는 사람이 있을 수 없다) 조건식 (data) 은 항상 5글자로, 다음과 ..

개발자의 꿈을 갖고 부트 캠프를 찾는 사람들에게 도움이 되길 바라며 글을 적는다.필자는 2023 년 3월부터 백엔드 스쿨 11기를 시작으로 한 번의 기수 유예 후 15기 졸업을 했음을 알린다.솔직 담백하게 후기 및 느꼈던 점을 적으니 믿어도 좋다. 제로베이스를 선택한 이유?사실 처음 선택한 이유는 별 이유 없었다. 나는 컴퓨터 공학과 전공생이고, 취업 방향을 선택하지 못한 채 막학기를 남기고 군대를 다녀왔었다. 입대 전 졸업 프로젝트를 진행했지만 프로젝트 내용 자체가 백엔드와 전혀 무관한 모바일 애플리케이션 관련 프로젝트였었고, 이미 몇 년의 공백이 있던 터라 당시 사용하던 기술 스택과 졸업 이후의 기술 스택 및 취업 시장은 많이 달라져 있었다. 따라서 졸업 후 막막하게 코딩 테스트나 준비하고 있던 ..

문제만 잘 이해했다면 쉬웠던 문제. 다만 생각의 전환만으로도 시간은 2배 가량를, 메모리는 약 5~10배를 대폭 줄일 수 있어, 다짜고짜 풀이가 아닌 수학적인 생각이 얼마나 중요한지 한 번 더 깨닫게 해주는 문제였다. 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Problem 문제는 설명만 이해한다면 간단하다. 최종적으로 works 배열의 각 숫자 원소들을 제곱하여 더할 건데, 그 값을 최소화 해보라는 문제이며, 최소화 과정은..

협업 프로젝트 시작 시 github의 organization(조직) repository 생성과 초기화 설정,그리고 해당 repository에 팀원들이 접근하여 코드를 가져오고 개발이 진행되는 시나리오에 대해 정리한다. 기본적으로 git flow (main - develop - feature) 규칙을 따른 예시로 설명하며,이슈 관련 및 branch 명명 혹은 규칙 등은 팀의 컨벤션(룰)에 따라 달라질 수 있음을 염두한다. 크게 다음과 같은 파트로 설명한다. (사용 툴 - Git, Github, IntelliJ) [ organization, repository의 생성, 업로드, 설정 (팀장) ] [ organization repository 연동 및 설정 (팀원) ] [ Git 활용 개발 방식 및 시나리오..

협업 프로젝트 시작 시 github의 organization(조직) repository 생성과 초기화 설정,그리고 해당 repository에 팀원들이 접근하여 코드를 가져오고 개발이 진행되는 시나리오에 대해 정리한다. 기본적으로 git flow (main - develop - feature) 규칙을 따른 예시로 설명하며,이슈 관련 및 branch 명명 혹은 규칙 등은 팀의 컨벤션(룰)에 따라 달라질 수 있음을 염두한다. 크게 다음과 같은 파트로 설명한다. (사용 툴 - Git, Github, IntelliJ) [ organization, repository의 생성, 업로드, 설정 (팀장) ] [ organization repository 연동 및 설정 (팀원) ] [ Git 활용 개발 방식 및 시나리오..

협업 프로젝트 시작 시 github의 organization(조직) repository 생성과 초기화 설정,그리고 해당 repository에 팀원들이 접근하여 코드를 가져오고 개발이 진행되는 시나리오에 대해 정리한다. 기본적으로 git flow (main - develop - feature) 규칙을 따른 예시로 설명하며,이슈 관련 및 branch 명명 혹은 규칙 등은 팀의 컨벤션(룰)에 따라 달라질 수 있음을 염두한다. 크게 다음과 같은 파트로 설명한다. (사용 툴 - Git, Github, IntelliJ) [ organization, repository의 생성, 업로드, 설정 (팀장) ] [ organization repository 연동 및 설정 (팀원) ] [ Git 활용 개발 방식 및 시나리오..