[혼공컴운] 3주차_미션
·
기타
🪄 기본 미션 185p 3번 주로 캐시 메모리로 활용됩니다: SRAM 주로 주기억장치로 활용됩니다: DRAM 대용량화하기 유리합니다: DRAM 집적도가 상대적으로 낮습니다: SRAM 205p 1번 (1)레지스터 (2)캐시메모리 (3)메모리 (4)보조기억장치 🪄 메모리와 캐시 메모리 RAM의 특징과 종류 메모리의 주소 공간 캐시 메모리 🪄 보조기억장치(+선택미션) 다양한 보조기억장치 RAID의 정의와 종류 🪄 입출력장치 장치 컨트롤러와 장치 드라이버 입출력장치는 규격화가 어렵고 전송률도 낮아서 다루기 까다롭다. 그래서 컴에 직접 연결하지 않고, 장치 컨트롤러 (하드웨어) 장치에 연결한다 *장치컨트롤러(=입출력제어기, 입출력모듈) 왜? 장치컨트롤러가 어쨌길래.. 1) CPU ~ IO장치간의 통신 중개 2) ..
모각코_3회차
·
기타
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 이 문제는 경사로를 놓기 위한 높이조건과 길이조건이 있었다. 맨 처음 높이조건을 확인하며 세가지상태를 리턴했는데, 그 중 높이차가 존재해 경사로를 배치해줘야 하는 경우에서 경사로 길이조건을 따져주었다. 후기 어떤 문제를 풀건 인덱스 따지는 부분에서 자잘한 실수가 있다. 조심하자. 한번에 착착... import java.io.BufferedReader; import java.io.IOException; import ..
[혼공컴운] 2주차_미션
·
기타
이번에는 CPU의 작동원리 및 성능향상 기법을 공부했다. ■ 작동원리: 명령어 사이클이 도는 것(fetch, decode, execute, access memory...)과, 도중에 발생할 수 있는 interrupt 사이클의 개요를 학습했다. ■ 성능향상: CPU 설계측면(클럭, 멀티코어, 멀티스레드)에서 본 다음에, 명령어 병렬처리 기법을 공부하면서 명령어 파이프라이닝의 중요성을 실감했다. 그리고 ARM ISA가 매력적인 이유 중 하나가 파이프라이닝의 장점을 적극 취하는 RISC가 큰 몫 하지 않을까 싶기도! (난 언제 써보지? ㅎㅅㅎ) 🪄기본 미션 ■ p125) 확인문제 2번 - 플래그 레지스터: 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터 - 프로그램 카운터: 메모리에서 가져올..
모각코_2회차
·
기타
시뮬레이션 문제 풀기 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 나는 백트래킹1: N_C_2/N 조합 찾음 (halfCombination) 백트래킹2: 각 조합의 A, B 그룹 각각에서 2개씩 짝지어진 조합을 얻음 (getPairs) 그리고 점수를 계산해서 min값을 찾는 방법으로 했다. 그런데 또 다른친구 코드랑 비교해보니까.. splitTeam 백트래킹 안에서 모든 과정을 원콤에 끝낸다. (원래 이런건 그렇게 하는 거라고 함) 메모리 10배이상, 시간 6배..
모각코_1회차
·
기타
시뮬레이션 문제 풀기 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 구현이 꽤 오래 걸렸다. 그리고 매우 느린 코드를 작성했다. import java.util.*; public class Main { public static int minimum = Integer.MAX_VALUE; public static String[][] originMap; public static int N, M; pu..
[혼공컴운] 1주차_미션
·
기타
잊지 않도록 컴운 슈우욱 보기 시작 아래는 혼공단 활동에 따른 미션 인증이다. . . 기본미션 - p51 문제3: 프로그램이 실행되려면 반드시 ~~ 에 저장되어 있어야 합니다. 답: 메모리 - p65 문제3: 1101(2)의 음수를 2의 보수 표현법으로 구해 보세요 답: 0011 (1101에서 모든 0, 1을 뒤집은 0010에서 1을 더해서 0011)
Docker Mysql Container의 sql 파일 꾸준히 백업: crontab 사용
·
Database
🪄 [1단계] mysql 컨테이너의 sql 백업파일 생성 아래 예시코드를 통해 mysql 컨테이너의 sql 백업파일을 생성할 수 있다. (경로는 맘대루..) docker exec mysql mysqldump -u"유저" -p"패스워드" mysql > ~/backup/backup-db-$(date +%Y-%m-%d).sql 이 코드를 담은 backup.sh를 만들면, backup.sh 실행만으로 mysql 컨테이너의 데이터파일인 .sql을 생성해낼 수 있다. 매일 꾸준히 백업하고 싶으니까 스케줄러를 등록해두자. 🪄 [2단계] cron 스케줄러 등록 다음과 같이, 방금 만든 backup.sh 실행하는 크론탭을 등록하자. crontab -e 명령으로 편집하자. *편집창이 뜨면 아래 스케쥴을 추가하면 된다. *..
[카카오 로그인 연동 1] 간단시리 카카오로그인 처리 흐름 이해하기
·
미분류글
✨ INTRO 우리 서비스에 계정이 필요해서 이참에 카카오로그인을 연동해보자고 했다. *참고로 SpringBoot 백엔드와 React 프론트엔드로 이루어진 전형적인 웹서비스다. 처음 해보는거라 가장 전체적인 과정을 이해해나갔다. 카카오 로그인 과정에서 가장 먼저 생각해야 할 것은 당연히 사용자의 카카오 로그인일 것이다. 즉 프론트 측에서 이루어져야 하는 과정을 먼저 이해하는 것이 자연스러울 것 같다. 요약하자면 '인가 코드'와 '토큰'을 받아와서 🪄 큰 흐름 알기 서버에 카카오 로그인 요청이 들어오면 아래 흐름대로 로그인을 처리한다. 프론트엔드 / 백엔드로 구분하자면 우리팀은 이렇게 구현했다. 1) 인가 코드 받기 (프론트엔드) 서버가 카카오에 인가코드 받기를 GET 요청하면, 카카오가 사용자에게 카카오..
[windows / docker / java] ./gradlew: not found
·
미분류글
✨ ./gradlew: not found chmod +x를 해도 gradlew를 인식하지 못했다. 해결하던 중 캐리지리턴이 문제라는 글을 발견했다 ㅇ_ㅇ! 그래서 gradlew를 열어보니까 마지막에 빈 줄 하나가 있었는데, 아싸리 빈 줄을 제거해주는 방식으로 해결했다. 그랬더니 도커파일의 RUN ./gradlew bootJar가 동작한다. ✨ 원인 - 나 windows다. - windows에서 직접 bootJar 하면 된다. 컨테이너에서 안되는 이유는 복사해온 gradlew에 windows의 CRLF이 반영되어있기 때문일 것이다. 팀원들은 mac이라서 또 나만 겪은 문제가 아닐까 싶기도 ㅇv ㅇ
[Java] 시간낭비 방지 메모: HashXX를 보고 O(1)을 곧바로 떠올렸어야지...!
·
JAVA
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 단순한 Set 문제다. 근데 시간 초과! 25% 시간초과 25%에서 28%까지 뚫었던 방법은, 새로운 객체 생성을 줄이는 방법으로 했다. // set과 initSet을 두고 Set set = new HashSet(); Set initSet = new HashSet(); for(int i=1; i