본문 바로가기

분류 전체보기

(87)
[mysql] Access denied for user 'root@'localhost' (using password: YES) 유형 2) ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: YES) - 사용자의 비밀번호가 틀렸을 경우 나타나는 오류 문구, 아래 해결 방법에 나와있는 명령어들을 입력. 비밀번호가 맞았는데 계속 틀렸다는 오류를 내밷었다. 심지어 application.properties는 같은 비밀번호로 접속 가능한데, application.yml으로 하면 비밀번호가 틀렸다는 오류가 계속 났다. 한참을 고민한 끝에, password: 비밀번호 -> password: '비밀번호' 로 ''를 붙여 string으로 만들어보았는데 성공했다... 이유는 모르겠지만, application.yml에서 password는 string으로 입력하기...
[운영체제] 5. Process 1 프로세스의 개념 실행 중인 프로그램! 프로세스의 문맥(크게 3가지로 구분 가능) 하드웨어 문맥 PC : code부분의 명령어 중, 현재 어디를 읽고 있었냐 각종 레지스터 : 각종 계산을 하기 위한 값들 프로세스의 주소 공간 메모리와 관련된 부분 현재 code, data, stack에 어떤 내용이 들어가있는가 프로세스 관련 커널 자료 구조 PCB 운영체제는, 자원을 관리하는 역할을 한다. 그 중, 프로세스들을 관리하는 역할 또한 한다 이를 위해, data 영역에 각 프로세스마다 PCB라는 자료구조를 두게 된다. Kernel Stack 운영체제도 커널이라는 메모리 공간을 차지하고 있는 프로그램이다. 그래서 code, data, stack 이라는 영역을 가지고 있다. 운영체제가 code를 실행하고, 함수를 호..
[운영체제] 4. System Structure & Program Execution 2 CPU가 하는 일 메모리에서 명령어(4bit)를 읽어들여, 실행 다음 명령어 실행 전, interrupt line에 들어온 값이 있는지 확인 동기식 입출력, 비동기식 입출력 동기식 입출력(synchronous I/O) I/O 요청 후, 입출력 작업을 완료하고, 그 다음에 사용자 프로그램이 작업을 진행하는 것 I/O 장치까지 직접 가서 결과를 보고 오는 것 읽어들이라는 명령을 보내고, 실제로 I/O 장치까지 가서 읽어와서 그 내용으로 다음 작업을 수행하는 것 쓰라는 명령을 내리고, 실제로 I/O 장치까지 가서 직접 쓰고, 그 다음 작업을 수행하는 것 구현방법 I/O가 끝날때까지 CPU를 낭비시킴. 매 시점 하나의 입출력만 일어날 수 있음 I/O가 끝날때까지 해당 프로그램에게서 CPU를 뺏어서, 다른 프로그..
[운영체제] 3. System Structure & Program Execution 하드웨어가 어떻게 돌아가는지, 프로그램이 이 하드웨어 위에서 어떻게 돌아가는지 설명하는 챕터. 하드웨어에 중점을 두고 설명하는 것이다 컴퓨터의 구조 전문적인 입장에서 컴퓨터를 말하면 cpu, memory. 외부 I/O 디바이스 CPU cpu가 하는 일 : 기계어를 실행시키는 것 cpu는 매 클럭마다, 메모리에서 기계어를 읽어들여서(fetch) 실행한다(execute). 평생 하는 일이 이것 하나 뿐이다. cpu가 접근 가능한 메모리 메인 메모리 하드웨어에 붙어있는 로컬 버퍼 레지스터 존재 메모리보다 더 빠르면서, 정보를 저장할 수 있는 작은 공간들 mode bit 존재 현재 사용자모드인지, 커널모드인지 알려줌 커널모드 (mode bit == 0) 운영체제가 cpu를 가지고 있는 것 사용자모드( mode ..
[운영체제] 1주차 - 강의소개 운영체제란? 좁은 의미의 운영체제 = 커널 - 운영체제의 핵심 부분으로, 부팅 시 메모리에 올라가는데, 해당 메모리에 상주하는 부분을 말한다. 운영체제의 목적 운영체제의 계층구조를 보았을 때, 하드웨어, 사용자와 관련이 있을 것임을 알 수 있다. 자원을 효율적으로 관리(가장 중요한 역할) 자원의 종류 : 하드웨어, 소프트웨어(프로세스, 파일, 메세지 등) 사용자에게 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다 몇가지 용어 Multitasking 여러 태스크가 돌아가고 있다. 사실 cpu는 한번에 하나의 프로세스만 돌릴 수 있음 Multiprogramming 메모리 강조. 여러 프로그램이 메모리에 동시에 올라가 있음을 강조 Time sharing cpu를 강조함. 시간을 분할하여 cpu를 나누어쓴다는..
[Java] stream을 사용하는 예시들 map()을 활용해서, 객체 리스트 -> (stream -> 다른 stream) -> 다른 객체 리스트 로 변환하기 1. 객체 리스트를 준비한다. 2. 원하는 객체 리스트에 대한 stream 객체를 구한다. List.stream() 사용 3. stream 객체에 대하여, map()을 이용하여, 다른 stream 객체로 변환한다 map(comment -> CommentAndImage.builder().build()) 이용 4. 변환한 stream을 다른 객체 리스트로 변환한다 .collect(Collectors.toList()) 사용 @Transactional public List getCommentAndImageList(Integer productId, Integer start) { List commen..
[Spring] [SpringJDBC] insert시, key값 알아오기 keyholder를 사용하면, auto-generated된 key값을 가져올 수 있다. private NamedParameterJdbcTemplate jdbcTemplate; // 1. reservation_info 만들어서 insert // 이때, pk값 알아와야한다 public int insertReservationInfo(ReservationInfo reservationInfo){ Map params = new HashMap(); params.put("product_id", reservationInfo.getProductId()); params.put("display_info_id", reservationInfo.getDisplayInfoId()); params.put("user_id", reser..
[MYSQL] [Error] Cannot add or update a child row: a foreign key constraint fails 참조하는 테이블에 없는 키 값으로, 현재 테이블에 값을 넣으려고 했을 때 발생하는 문제이다. 즉, 부모 테이블에 없는 키 값으로, 자식 테이블에 값을 넣으려고 했을 때 발생하는 문제이다.
[운영체제] 커널 스택이란 무엇인가? 너무 잘 정리되어있는 글이 있어서 링크만이라도 걸어둔다. 요약하자면, 메모리의 최상단 부분에 kernel space가 있는데, 해당 공간 내부에 프로세스 별로 커널 스택이라는 것이 나눠져서 존재한다는 것이다. https://blog.naver.com/lache96/140051813931 Linux Kernel Stack에 대한 오해 [root@XLRDev ~]# cat /proc/1/maps 00271000-00272000 r-xp 00271000 00:00 0 0052f000-0053f000 r-xp... blog.naver.com
[Spring] [ERROR] @RequiredArgsConstructor의 잘못된 사용으로 인한 NullPointerException 수정 전 코드 return insertActionWithReservationInfo.executeAndReturnKey(params).intValue(); 이 부분에서, insertActionWithReservationInfo가 np exception이 발생하였다. (디버깅으로 발견) 문제는, 생성자 주입을 사용하면서 @RequiredArgsConstructor를 사용한 것이였다. NamedParameterJdbcTemplate jdbc, SimpleJdbcInsertOperations insertActionWithReservationInfo 와 같은 객체들이 빈으로 등록되어있는 상황이 아닌데 @RequiredArgsConstructor를 사용하였기 때문에, np exception이 발생하였다. @Rep..