2025년3월26일 - 현대차, 美 31조 투자…트럼프 "위대한 기업"
1. 용어2. 인사이트 및 숫자
현대차그룹이 향후 4년간 미국에 210억달러(약 31조원)를 투자
이는 현대차그룹이 1986년 미국에 진출한 이후 40년 동안 투자한 금액(205억달러)을 넘어서는 규모
핵심은 현대차그룹이 미국에서 ‘쇳물부터 자동차까지’ 수직 계열화를 통해 일관 생산시스템을 갖춘다는 데 있음
루이지애나에서 현대제철소가 철강 제품을 생산하면 앨라배마, 조지아, HMGMA에서 자동차를 연 100만대 생산
현대차는 미국에서 철강과 자동차를 생산하는 만큼 관세를 낼 필요가 없음
3. 나의 생각철강과 자동차를 현지에서 생산함으로써 관세 부과에서 면제받을 가능성도 커져, 보호무역주의에 잘 대응한 것으로 보인다. 그러나 트럼프 정부 이후 정권이 바뀌면 무역정책이 바뀔수 있기 때문에 이러한 대규모 투자가 미래에 어떤 영향을 끼칠지 궁금하다.
코테 대비 JAVA 문법
List리스트는 배열처럼 인덱스를 통해 접근할 수 있으며, 중복된 요소를 허용합니다. 크기가 동적으로 조정된다는 점에서 배열보다 유연한 특징을 가지고 있습니다.
List 인터페이스의 구현 클래스
ArrayList: 배열 기반으로 동작하는 List 구현체입니다. 요소에 빠르게 접근할 수 있으나, 요소를 삽입하거나 삭제하는 경우 배열을 재조정해야 하므로 성능에 영향을 미칠 수 있습니다. 많은 양의 읽기 작업이 있을 때 효율적입니다.
LinkedList: 이중 연결 리스트로 구현된 List입니다. 요소를 삽입하거나 삭제할 때 빠른 성능을 보장하지만, 인덱스를 기반으로 접근할 때는 ArrayList에 비해 성능이 떨어질 수 있습니다. 양쪽 끝에서 삽입/삭제 작업이 자주 발생하는 경우에 유리합니다.
Vector: Vector는 ArrayList와 비슷하지만, 모든 메서드가 동기화되어 있어 다중 스레드 환경에서 안전합니다. 그러나 이로 인해 일반적인 상황에서는 성능이 떨어질 수 있 ...
파이썬 문법과 알고리즘
파이썬 문법1. 입력
input의 기본인자는 string이고 number로 받을 때는 int함수 사용12345num = int(input('num: '))print(num)num = float(input('num: '))print(num)
map을 활용한 input123456a, b = map(int, input().split())print(a+b)print(a-b)print(a*b)print(int(a/b))print(a%b)
2. 출력
f-string출처: https://www.daleseo.com/python-f-strings/
1234567891011121314151617x = 1y = 2print(f"{x} + {y}는 {x+y}입니다.")word = 'Python'print(f"{word}는 {len(word)& ...
깃허브 블로그 템플릿 소개
hexo 선택 이유깃허브 블로그는 정적사이트 생성기로 대부분 Jekyll을 사용한다. 하지만 나는 Hexo를 사용했다. Jekyll의 테마들보다 hexo 테마가 더 이뻤다. 이왕이면 이쁜 블로그를 만들어야 애정이 생기니깐 말이다. 그외에도 hexo는 자바스크립트 기반이라는 점과 좀 더 최신 기술이라는 점에서 선택했다.
butterfly 테마중국인이 만든 테마인데, 이쁘고 가이드가 잘 되어 있다.깃허브커스텀 설정
hexo 사용법hexo cleanhexo generatehexo serverhexo generatehexo serverhexo deployhexo clean
LeetHub 커스텀하기
백준허브처럼 코딩테스트를 자동커밋해주는 LeetHub를 설치하였다.그러나 백준허브랑 다른 부분이 있어서 LeetHub를 fork해서 커스텀하였다.
설치크롬 확장 스토어에서 LeetHub version 2 설치version2 설치를 추천함, v3은 커스텀했을 때 정상작동하지 않음https://chromewebstore.google.com/category/extensions?utm_source=ext_sidebar&hl=ko
forkLeetHub version 2를 fork함https://github.com/arunbhardwaj/LeetHub-2.0.git
fork한 레포를 로컬에 git clone해서 커스텀 진행하면 됨
1git clone https://github.com/arunbhardwaj/LeetHub-2.0.git
경로 수정백준허브처럼 LeetCode 폴더에 difficult별로 파일을 넣도록 수정함. 총 3부분을 수정하면 됨
1const URL = `https:/ ...
OS Project 3 WIL-2
Memory Managementos가 페이지폴트 핸들러를 처리하기 위한 자료구조를 하나 만듭니다.
Anonymous page익명 페이지는 stack과 heap 세그먼트에 할당되는 페이지입니다.익명 페이지는 lazy loading을 통해 메모리 효율성을 높입니다.
Stack GrowthMemory Mapped filedisk에 있는 파일을 메모리에 올려서 사용합니다.
Swap In/OutCopy-on-Write(Extra)
OS Project 3 WIL
추후에 정리
반효경 운영체제 가상메모리http://www.kocw.net/home/search/kemView.do?kemId=1046323https://asfirstalways.tistory.com/130https://product.kyobobook.co.kr/detail/S000001772604
Memory Management 1~4: 하드웨어가 하는 일(주소 변환, 물리메모리 관리)
Virtual Memory 1~2: 운영체제가 하는 일(page table, io 작업)
주소 바인딩logical address (=virtual address)
프로세스마다 독립적으로 가지는 주소 공간
각 프로세스마다 0번지부터 시작
CPU가 보는 주소는 logical address임(mmu가 변환해서 실제 메모리에서 값 가져옴)
Physical address
메모리에 실제 올라가는 위치
Symbolic address
프로그래머들이 특정 이름을 통해 변수를 지정하고 값을 저장할 ...
OS Project 2 WIL
sw사관학교 정글 과정중 pintos project 2 진행중에 구현한 fork 의 과정을 추척하는 글을 작성 해보려고 한다.
목차
pintos에서의 fork
fork 과정 추적
1. userprogram 에서 fork 함수 호출 2. lib/user/syscall.c 에서의 처리 3. syscall-entry.S 4. userprog/syscall.c 의 syscall_handler 함수 5. userprog/process.c 의 process_fork() 6. threads/thread.c thread_create() 함수 7. do_fork 8. 다시 process_fork
결론
pintos에서의 forkPintos에서 ‘fork’ 구현 목표는 부모 프로세스의 주소 공간을 정확하게 복사하여 자식 프로세스에 할당하는 것이다.
fd 복제: 부모 프로세스의 fd를 자식에게도 복사.
주소공간 복사: pintos는 페이지 ...
OS Project 1 WIL
1. Alarm Clocktimer interrupt
timer는 하드웨어를 통해 초당 PIT_FREQ 회 interrupt가 발생함.
4tic마다 time slicing하여 멀티 태스킹을 할 스레드들이 골고루 cpu 연산 작업을 하기 위해 timer interrupt를 사용함.
interrupt는 지금 실행중인 thread를 잠깐 멈추고 그 interrupt에 해당하는 핸들러를 수행하도록 함. interrupt 핸들러가 수행되면 기존에 작업하던 스레드로 돌아감.
Problem
pintos는 busy waitng 방식으로, ready queue에서 깨어날지 안할지를 thread_yield ()를 매번 발생시켜 cpu에서 확인함. cpu에서 확인하기 때문에 그만큼 쓸데없는 자원을 많이 소모함.
Solve
sleep list를 만들어 thread가 wait해야할 시간동안 sleep list에 저장했다가 ready queue로 옮기도록 구현함.12345678910111213141516 ...
C프로그램 메모리 관련 버그
9.11 C프로그램에서의 공통된 메모리 관련 버그 참고
1. 잘못된 포인터의 역참조1scanf("%d", val);
scanf는 val의 값을 주소로 해석하고 이 위치에 워드를 쓰려고 한다.최상의 경우에 프로그램은 즉시 예외를 발생시키고 종료한다. 최악의 경우는 val의 값이 유효한 가상메모리의 읽기/쓰기 영역에 대응되어 메모리를 덮어쓰고, 대개 치명적이고 혼란을 일으키는 결과를 훨씬 뒤에 갖게 된다.
2. 초기화되지 않은 메모리를 읽는 경우
bss메모리 위치(초기값 없는 전역변수, static으로 선언된 변수, 배열)들은 항상 로더에 의해 0으로 초기화된다.
heap메모리 위치는 calloc으로 할당해야 0으로 초기화됨. malloc으로 초기화하면 그렇지 않다.
3. 스택 버퍼 오버플로우 허용하기1234567891011121314151617181920212223#include "stdio.h"MAX_LENGTH = 4;int main( ...