본문 바로가기

전체 글40

[컴퓨터구조] 2 명령어: 컴퓨터 언어 2.11 ~ ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※2.11 병렬성과 명령어: 동기화태스크가 병렬로 동작할 때 주의할 점은 태스크들이 경쟁 상태에 놓일 수 있다는 점이다. 이를 위해 태스크 간에 동기화가 필요하다. 동기화란 공유 자원에 접근할 때 서로 간섭 없이 올바르게 작업이 이루어지도록 접근 순서를 조정하는 것이다.이를 위해 동기화 연산인 lock과 unlock을 통해 단 하나의 프로세서만 작업할 수 있는 영역을 만들어서 상호 배제(mutual exclusion)을 구현할 예정이다.동기화를 구현하기 위해서는 메모리 주소에서 데이터를 읽고 수정하는 작업을 원자적으로 처리할 수 있는 하드웨어 프리미티브가 필요하다. 중간에 인터럽트나 다른 스레드가 개입하지 않도록.. 2024. 10. 15.
[컴퓨터구조] 2 명령어: 컴퓨터 언어 2.6~ ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※2.6 논리 연산 명령어지금까지 워드 단위로 처리하는 명령어를 보았다. 하지만 워드 내 일부 비트들 뿐만 아니라 개개 비트에 대한 연산이 필요한 경우도 있다. 비트를 워드로 묶거나(packing), 워드를 비트 단위로 나누는(unpacking) 작업을 하는 명령어가 명령어 집합(instruction set)에 추가되었다. 이런 명령어를 논리 연산 명령어라고 한다.[ Logical operations ][ C operators ][ MIPS instructions ]Shift leftsllShift right>>srlBit-by-bit AND&and, andiBit-by-bit OR|or, oriBit-by-bi.. 2024. 10. 8.
[Selenium] headless 크롤링 안될 때 (headless not working) 제가 해결한 방법입니다.window size를 1920x1080으로 해도 안돼서 찾아보던 중에 다음 방법으로 해결했습니다.options.addArguments("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.79 Safari/537.36");Chrome 드라이버 option에 위의 내용을 추가합니다. 2024. 10. 7.
[IntelliJ] 자동 줄바꿈 설정하기 (soft-wrap) IntelliJ에서 문서를 볼 때 한 줄이 길어지는 경우 좌우 스크롤을 해야해서 코드를 한 눈에 보기 힘든 경우가 있습니다.그래서 자동 줄바꿈을 해주는 방법을 설명해 드리겠습니다.1 디폴트로 모든 파일에 적용하기Settings > General 선택합니다.'Soft-wrap these files'의 내용을 위의 이미지와 같이 '*'로 수정합니다.2 원하는 파일에만 적용하기'Soft-wrap these files'에 원하는 파일을 씁니다.*.txt;*.java;3 현재 보고 있는 파일에 적용하기'Ctrl + Shift + A'를 눌러서 Actions 창을 엽니다. (Mac은 'Command (⌘) + Shift + A')'wrap'을 검색 후 'Enter'를 누릅니다.현재 파일에만 적용이 됩니다. 2024. 10. 2.
[컴퓨터구조] 2 명령어: 컴퓨터 언어 2.1~2.5 ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※2.1 서론컴퓨터가 사용하는 어휘들을 명령어 집합(instruction set)이라고 한다.명령어 집합은 아키텍처(ISA)에 따라 다르다.2.2 하드웨어 연산add a, b, cb와 c를 더해서 a에 넣는 명령어여기서 add는 연산자(operator)이고, a, b, c는 피연산자(operand)이다.MIPS 대부분의 명령어가 피연산자를 반드시 3개씩 갖도록 하고 있는데, 그 이유는 하드웨어를 단순하게 하기 위함이다. 설계 원칙 1: 간단하게 하기 위해서는 규칙적인 것이 좋다.f = (g + h) - (i + j);이 코드를 MIPS 명령어로 치환하면 다음과 같다.add t0, g, hadd t1, i, js.. 2024. 10. 1.
[Java 자바] 정적 초기화 블록, 인스턴스 초기화 블록 초기화 블록은 자바 초기 버전부터 있던 기능으로, 객체 지향 초기화 매커니즘에서 중요한 역할을 한다.초기화 블록은 클래스의 초기화를 담당하고, 종류에 따라 쓰임새가 다르다.정적(static) 초기화 블록정적 초기화 블록의 코드는 해당 클레스에 처음 접근할 때 딱 한번 실행된다.주로 초기화 로직이 필요한 정적 변수를 초기화하는 데 사용된다. ex) 파일 불러오기당연히 정적 초기화 블록에서는 정적 멤버가 아닌 멤버에 접근할 수 없다.코드 예시public class StaticInit { private String hello = "hello"; public String getHello() { return hello; } public static String STATIC_INI.. 2024. 9. 20.