목록분류 전체보기 (150)
forDevLife
일반적으로 MySQL 서버는 단 하나의 설정 파일을 사용하는데, 리눅스를 포함한 유닉스 계열에서는 my.cnf라는 이름을 사용하고, 윈도우 계열에서는 my.ini라는 이름을 사용한다. MySQL 서버가 시작될 때만 이 설정 파일을 참조하는데, 이 경로가 고정되어있는것은 아니고, 지정된 여러 개의 디렉터리를 순차적으로 탐색하면서 처음 발견된 my.cnf 파일을 사용하게 된다. 다음 명령어를 통해 MySQL 서버가 어느 디렉터리에서 my.cnf를 읽는지 알 수 있다. shell > mysqld --verbose --help # 또는 shell > mysql --help 실행 결과 Default options are read from the following files in the given order: /e..
1년 전 2021년 4월 14일 휴직으로 자유(?) 신분이 된 후 홀로 독학을 시작했다. 뭐랄까.. 당시에는 하루빨리 공부보다는 쉬고 싶은 마음이 커서 정말 자유를 만끽했다. 어떤 걸 공부해야 할지 키워드도 모른 상태에서 좋아 보이는 것은 죄다 북마크를 걸어놓고(물론 지금도 그러고 있다.) 백엔드라는 높은 벽에 도전했다. 아래 Trello에서 뭔가 여러 키워드를 적어놓은 거 같은데 지금 보니 BackEnd 항목을 엄청나게 세분화해야 할 것 같다.😆 (여담이지만 코드스쿼드에서 아래와 같은 TodoList 앱을 iOS와 협업하여 개발 중이다!) 휴직 1주년을 맞이하여 다시 한번 학습 계획을 수립하고자 한다. 이전에 한 달 한 번씩 작성했던 회고를 읽으며 현재 많이 성장했음을 느끼면서도 그 발자취를 남겨야겠다..
9~11주차는 스프링 프레임워크를 활용한 게시판 만들기 수업을 진행했다. 백엔드 개발자 하면 게시판 하나정도는 뚝딱 해야한다는 말이 있을 정도로 기본적이면서도, 끝없이 깊게 만들 수 있는 과제로 알려져 있어 기대 반 걱정 반으로 시작하게 되었다. 인프런 강의를 보면서 예제로 나오는 간단한 서비스는 구현해봤으나, 내 고민이 하나도 들어있지 않아 진정 내가 짠거라하기도, 내용을 완전히 흡수했다 하기도 애매한 터라 이번 과제는 깊게 구현해보기로 마음먹었다. 이번 주 학습 Database 연동 & 학습 -> Spring JDBC를 활용하여 쿼리를 작성하는데 익숙해지기 위해 노력했다. -> SpringBootTest 외의 방법으로 테스트를 진행해보고자 했다. -> JPA 복습 시작 배포 -> Heroku를 활용한..
3주차가 끝났다.(나중에 쓰는건 안비밀) 급격하게 높아진 과제의 난이도에 정신이 휘청휘청한 한 주였다. 그만큼 시간도 정신없이 흘러갔다. 원하던 M1 맥북 에어로 기기 변경을 하고, 이전에 쓰던 맥을 팔기 위해 계속 신경이 쓰인 한 주기도 했다. 아쉽게도 인텔 맥의 가격은 점점 더 곤두박칠 하고 있는 중이라, 언제 팔릴지 잘 모르겠다. 이번 주 학습 프로세스의 메모리 구조 및 구현에 대해서 학습 그토록 친하지 않던 함수형 프로그래밍 개념 + 람다 & 스트림과 약간 친해졌다. 아주 약간,, 알고리즘(이진 탐색) 네트워크 정리 느낀 점 & 아쉬운 점 쓸데없는 것에 꽂히면 끝을 봐야하는데, 이게 정말 부질 없는 것 같다. 시국이 시국인지라 밖에 잘 나가질 않아, 예전 같이 무의식적으로 옷 쇼핑몰을 둘러보지는 ..
문제 아래 예제는 ThreadEx20_3(데몬 쓰레드 - gc 역할)를 생성한 후 메인 쓰레드의 for문 내에서 랜덤으로 memory를 소모하는 도중 memory의 사용량을 체크 > gc를 수행하는 방식이다. 기존에는 gc.interrupt()가 발생하게 되면 sleep 된 데몬 쓰레드가 깨어나 gc 처리를 수행하는 도중 컨텍스트 스위칭이 발생하여 메인 쓰레드에서 memory를 깎아 먹어 마이너스 메모리가 되는 문제가 발생했다. 따라서 main의 try ~ catch를 통해 gc 쓰레드가 수행을 마칠 때 까지 기다리는 join을 통해 문제를 해결했다. 이 방법외에 다른 방법을 찾고자 AtomicInteger를 사용해봤다. 결과는 우선 원하는대로 나오지는 않았다. 코드 import java.util.con..
참고 : https://stackoverflow.com/questions/37026/java-notify-vs-notifyall-all-over-again Java: notify() vs. notifyAll() all over again If one Googles for "difference between notify() and notifyAll()" then a lot of explanations will pop up (leaving apart the javadoc paragraphs). It all boils down to the number of waiting threads be... stackoverflow.com 생각의 흐름 자바의 정석 Thread의 wait, notify 부분을 보다가 not..
Problem 1 기존 MacBook Pro에서 새로운 MacBook Air로 마이그레이션을 통한 기기 변경 완료. 자바, 환경 변수 등은 모두 넘어와서 사용에 문제가 없었으나, git과의 연동이 조금 문제가 되었음. 해결 1. Github Setting > Developer Settings > Personal Access Token 새로 생성(어디에 적어두기) 2. local pc에서 github에 접근 시 password에 token 입력 3. 이를 통해 터미널 환경에서는 문제 없이 git / github 사용 가능해졌음. Problem 2 기존 MacBook의 프로젝트가 그대로 넘어오게 되었다. 하지만 IntelliJ에서 기존 git history 등이 조회가 되지 않았고, 당연히 commit & ..
2주차의 끝과 함께 1월의 반절이 지나갔다. 아침 운동으로 하루를 시작하며, 일일 회고를 작성하는 패턴으로 하루를 마무리하고 있다. 시간이 너무 빨리 흐르는게 느껴지는데, 되돌아보면 시간을 비효율적으로 사용하지는 않은 것 같다고 위안을 해본다. 갑자기 맥북 사이즈업을 하고싶어서 알아보고 있는데, 매주 이렇게 쓸데없이 신경쓰이는 것들이 하나씩 집중력을 깨는 것 같다.😭 주말은 정말 푹 쉬고 맛있는거 먹으며 마무리하고 있다. 연말정산 알아봐야 하는데 계속 미루게 된다. 이번 주 학습 지난 주에 네트워크 기초가 너무 부족하다고 느껴서, "하루 3분 네트워크 교실" 학습 및 정리하고 있다. 실습을 통한 Linked List & 자료구조 활용 & 알고리즘을 풀었다. 시간 복잡도, 공간 복잡도에 대해 정리했다. 객..
자세한 설명은 위키 참고 : https://ko.wikipedia.org/wiki/%ED%80%B5_%EC%A0%95%EB%A0%AC 간단히 그림과 수식을 통해 계산해보자. 그림 설명 1. 최초 N개를 대상으로 pivot과 비교를 수행한다.(N-1이지만 근사) 2. 쪼개며 1이 될 때까지 동일하게 비교를 수행한다. 쪼개지더라도 전체로 보면 결국 N번 비교가 된다. 3. 2의 횟수는 logN이 될 것이다. 결국, T(N) = N + (logN * N) = N*logN으로 계산된다. 수식 증명 : 위의 그림과 결국 같다. T(N) = N + 2T(N/2) = 2T(N/2) + N = 2(2T(N/4) + N/2) + N = 4T(N/4) + N + N = 4T(N/4) + 2N = 4(2T(N/8) + N/..
코드스쿼드 백엔드 과정 첫 주가 시작되었다. 정신없는 2022년 1주차가 지나갔고, 비대면 & zoom 방식의 수업은 처음이라 걱정되었지만 생각보다 나쁘지 않았고, 이동 측면에서는 훨씬 효율적인것 같다. 다만 대부분 시간이 모각코인데, 바로바로 옆 사람과 대화하며 지식을 공유하고 친해지면 더 좋을 것 같다. 1월 한 달은 CS(Computer Science)과정으로 진행된다. 1주일에 2개의 미션이 진행되며, 수요일 하루는 알고리즘 문제를 푼다. 매일 markdown을 통해 TIL을 깃허브에 업로드하고, 티스토리에는 과정을 정리하며 WIL를 작성하기로 마음먹었다. 이번 주 학습 Adder를 활용한 비트 계산기 만들기를 통해 디지털 시스템 기초를 배웠다. Little Endian, Big Endian 개념..