분류 전체보기

    [Spring Boot] 4. 로컬 개발을 위한 CORS 설정 - (2) Spring MVC 와 Spring Security

    CORS 정책을 모른다면 아래 글을 먼저 읽으시길 바랍니다. [Spring Boot] 4. 로컬 개발을 위한 CORS 설정 - (1) w3c recommendation 파악 [Spring Boot] 4. 로컬 개발을 위한 CORS 설정 - (1) w3c recommendation 파악 https://fetch.spec.whatwg.org/ Fetch Standard fetch.spec.whatwg.org 프론트 단에서의 비동기 통신 요청 - XMLHttpRequest 객체를 이용한 AJAX(Asynchronous JavaScript And XML (en-US)) 프로그래밍을 용.. letsmakemyselfprogrammer.tistory.com [2가지 설정 방법] CORS 정책 설정은 Spring M..

    [Python 뜯어보기] 5. 파이썬 가상머신(PVM) 과 컴파일방식

    [Python 뜯어보기] 5. 파이썬 가상머신(PVM) 과 컴파일방식

    java bytecode 찾아보다가 파이썬도 바이트코드를 확인할 수 있다는 것을 우연히 발견하게 되었다. 아니 그렇다는 것은,, 자바와 마찬가지로 파이썬도 컴파일 된 후에 인터프리터를 하는 하이브리드 방식이라는 얘기인가?!?! 하고 찾아봤다. python VM 이 코드를 interpret 하는 과정 https://caiocozza-art.medium.com/a-quick-overview-of-the-python-virtual-machine-pt-1-315e74c036f4 A quick overview of the Python Virtual Machine — Pt. 1 This is the part one of a series covering aspects of Virtual Machines and how..

    JIT compiler

    JIT compiler

    JVM 은 이식성을 위해 java specific instruction 을 생성하고 JVM 에서 line by line 으로 해석한다. 하지만 이런 방식은 c 같은 언어에 비해 매우 느릴 수 밖에 없다. c 는 모든 코드를 기계어로 한번에 번역하여 실행하는 반면 java 는 동일한 함수가 여러번 호출되는 경우에, 해당 함수를 번역하고 실행하는 작업이 반복되기 때문이다. 그러한 코드를 hot code 라고 하고, 잘 호출되지 않는 코드를 cold 코드라고 한다. 그래서 JIT 컴파일러를 도입하여, hot code 는 machine specific 한 기계어로 번역을 하고 캐시하는 것이다. 이런 방식으로 인터프리터 방식의 단점을 보완한다.

    Java Bytecode 와 RISC-V instruction 비교

    Java Bytecode 와 RISC-V instruction 비교

    c 와 java 의 차이점 - 함수호출을 c 에서는 call procedure, java 에서는 invoke method - 객체참조를 c 에서는 포인터, java 에서는 object reference - c 에서는 메모리를 동적할당한 후에 명시적으로 해제해야하는 반면, java 에서는 사용자가 그렇지 않았을 때의 오류를 방지하기 위해 garbage collector가 참조되지 않는 힙 메모리를 정리한다. (full gc 등) 그래서 java 에서는 free 라는 예약어가 없다. - c array 은 bound 검사를 하지 않는다. java 는 배열 선언 시 해당 배열에 대한 길이를 따로 저장하고, 범위를 초과하는 참조에 대해서 runtime 에 오류를 발생시킨다. Java Bytecodes vs RIS..

    [Java의 정석] 12. 제네릭스, 열거형, 어노테이션

    1. Generics 1.1 제네릭스란? : 컴파일 시에 타입을 확인하는 기능. => 타입 안정성을 높이고 형변환의 번거로움을 줄인다. 1.2 제네릭 클래스의 선언 class Box { T item; void setItem(T item) { this.item = item; } T getItem() { return this.item; } } Box b = new Box(); b.setItem(new Object()); // error b.setItem("abc"); // ok // 이전 코드 호환을 위해 아래도 가능 Box b = new Box(); b.setItem(new Object()); // ok, but warning b.setItem("abc"); // ok, but warning Box : 제..

    [서버 장애 (2022-04-01 23:47)] mysql 서버가 죽었다...

    [서버 장애 (2022-04-01 23:47)] mysql 서버가 죽었다...

    [발견시각]23:47 [상황분석]17:54 분에 파일 업로드를 동반한 게시글을 업로드함과 동시에 sql 서버가 다운됐다.django 서버는 500 에러 안내 페이지를 뿜뿜 잘 내고 있는것으로 보아,,어이없지만 아마 sql 서버 용량이 100퍼센트를 초과해서 발생한 것으로 보였다. 당장 서버 접속해서 용량 확인했더니,, usage 100%.... mysql 은 죽어있었다.[대처]기존의 aws EBS 볼륨을 스냅샷으로 복구aws EBS 볼륨 크기 확장ubuntu 에서 해당 확장된 파티션 적용했더니만 tmp 폴더가 초기화가 되어버렸다.그래도 무중단으로 해결해보려고 했는데,,, ㅜㅜ 장고서버 소켓 파일을 tmp 폴더에 뒀었는데 사라져버려서nginx 가 502 에러를 대신 뿜뿜해주었다.... 다시 장고 서버 켜고..

    [교육자료] 0. 신입팀원 Java 교육 커리큘럼

    [교육자료] 0. 신입팀원 Java 교육 커리큘럼

    1. 교재 자바의 정석 Java How To Program 10th, Deitel, Pearson 2. 커리큘럼 - 1주차 : 반복문, 제어문, 입출력 (~4장) 3.22 ~ 3.28 [과제] - 2주차 : 배열 (5장) 3.29 ~ 4.4 [과제] - 3주차 : 클래스 (설계를 다 주고 구현) (6장) 4.5 ~ 4.11 [과제] - 4주차 : 클래스 (설계 포함) (6장) 4.26 ~ 5.2 - 5주차 : 상속 (7장) 5.3 ~ 5.9 - 6주차 : 인터페이스와 다형성 (7장) 5.10 ~ 5.16 [과제] - 7주차 : GUI 시작, exception (8장) 5.17 ~ 5.23 [과제] - 8주차 : 날짜 및 기타 포매팅 GUI 에 녹여내기 (9장, 10장) 6.7 ~ 6.13 [과제] - 9..

    [Java의 정석] 11. Collections Framework

    [Java의 정석] 11. Collections Framework

    1.5 Iterator, ListIterator, Enumerator : JCF 에서는 저장된 요소를 읽어오는 방법을 표준화하였다. Iterator 인터페이스에 정의되었고, Collection 인터페이스에 Iterator 를 반환하는 iteratore() 를 정의하고 있다 List list = new ArrayList(); // 다른 컬렉션으로 변경할 때는 이 부분만 고치면 된다. Iterator it = list.iterator(); while(it.hasNext()) { // do sth.. } Map 인터페이스에는 iterator 를 반환하도록 되어있지 않기 때문에, key 나 entry 집합으로 반환한 후에 iterator 호출이 가능하다. Iterator keyIt = map.keySet().i..