개발 32

[Windows] Windows 설치 시 하드 디스크를 찾을 수 없을 때

#목적 1. 친구 Asus노트북에 Windows10을 깔아주는데 아래와 같은 문제 발생 a. 외장 cd롬을 인식하지 못하여 부팅 순서를 편집할 수 없음 b. Windows usb를 만들었으나 os를 설치할 하드 디스크를 찾지 못함 #내용 1. 대상 Asus노트북 스팩은 아래와 같았다. 2. 내장 cd롬이 없는 관계로 외장 cd롬을 연결하여 Windows 10 설치 cd를 넣고 부팅 옵션을 수정하려 하였으나 아무런 내용도 출력되지 않았다. 3. 어쩔 수 없이 근처 편의점에서 usb를 사서 pc방에가서 Windows 10 설치 usb를 만들었다. a. 아래 링크에 들어가서 [지금 도구 다운로드]를 눌러 설치 파일을 다운받는다. https://www.microsoft.com/ko-kr/software-down..

개발/기타 2021.06.01

[Solaris] Solaris에서 c프로그램 다운/%s에 NUL

#목적 1. Solaris환경에서 WAS Down현상이 발생하였다. 2. java/native를 이용한 라이브러리가 배포되는 WAS 기동 방식이다. 3. 위 현상에 대해 분석 및 발견한 기술 및 내용에 대해서 작성한다. #내용 1. Log확인 a. WAS Down현상이 발생한 환경의 Log를 확인해보니 별다른 특이점을 찾을 수 없었다. b. 각 Log를 모아놓고 Linux환경, Windows환경에서의 Log와 비교 c. Linux와 WIndows환경의 Log는 x = (null) 와 같은 형식의 문자열을 출력 d. Log의 null값을 출력하는 부분을 주석처리 후 Solaris 환경에 배포 및 실행 시 WAS Down현상 미발생 e. %s에 NULL을 전달하는 부분이 문제의 원인임을 파악 2. Solar..

개발/Unix 2021.05.02

[java] switch-case 문자열 조건

#목적 1. switch-case문의 조건으로 문자열을 사용하였을 때에 발생한 문제에 대해 기술한다. #내용 1. switch-case문의 조건에 String값은 jdk7 이상부터 가능하다. if문으로 이를 대체하여 해결함. a. 수정 전 switch("001") { case "001" : ... break; case "002" : ... break; ... default : System.out.println("No case"); break; b. 수정 후 if("001".equals(temp)) { ... } else if("002".equals(temp)) { ... } else { System.out.println("No case"); } #배운점 1. 오류가 발생했을 때에 문법 적오류를 찾기위해 ..

개발/Java 2021.04.19

[java] Generic을 사용해 Class 및 Method 동적 생성 및 호출

#목적 1. Generic 사용 예시 및 환경 #내용 1. 동적으로 Class 객체를 생성하고 함수를 호출해야했다. 2. 공통되는 패키지 경로에 Class명을 붙인다. a. String className = "seungri.common." + "ClassName"; 3. Class를 선언하고 forName함수를 이용하여 Class 및 인터페이스 초기화 a. Clasa simpleClass; i. 여기서 ? 가 Generic이다. b. simpleClass = Class.forName(className); i. 참고 링크 : https://kyun2.tistory.com/23 4. 객체 초기화를 위해 생성자를 호출해야했다. 이를 위해 Constructor 객체를 선언 및 생성한다. a. Constructo..

개발/Java 2021.04.18

[c] unknown type name caddr_t / gcc compile error

#목적 1. C Compile중 unknown type name caddr_t 오류가 발생하였고 이를 해결하기 위해 찾은 내용을 작성한다. #내용 1. caddr_t는 메모리 매핑을 위한 mmap에서 주로 사용된다. 저수준 호출과 관련된 레거시 BSD유형이며 POSIX표준에는 해당되지 않는다. -> https://pythonq.com/so/c/274700 주소를 의미하여 주소를 저장하기 위한 void *형태로 이해하면된다. 낮은 버전의 gcc를 제외하고는 지원이 불가하며 SystemV 및 BSD에서 사용된다. BSD에서 많은 것을 차용한 Solaris에서도 많이 보인다고 한다. -> http://computer-programming-forum.com/47-c-language/d0a2ac240bef8899..

개발/c 2021.04.11

[jsp] 파일 업로드 최대 크기

#목적 1. 파일 업로드 시 최대 업로드 크기에 대해서 정리한다. #내용 1. 파일 업로드를 위해 Servlet단에서 아래와 같이 지정해 주었다. multi = new MultipartRequest(req, savaPath, fileMaxSize, "UTF-8", new DefaultFileRenamePolicy()); a. 최대 크기를 지정하지 않으면 기본적으로 10mb가 최대라고 한다. b. 지정을 하였을 때는 최대 2gb라고 한다. c. 아래 사진을 참고하면 int maxPostSize가 명시되어 있다. d. int형이므로 int형보다 큰 숫자가 올 수 없기에 Integer.MAX_VALUE를 지정해주면 최대 크기 (약 2gb)만큼 업로드할 수 있을 것이다. e. Tomcat에도 maxPostSiz..

개발/JSP 및 PHP 2020.11.15

[jsp] 파일 업로드 시 Chrome Error (Separation boundary was not specfified)

#목적 1. 파일 업로드 수행 시 IE에서는 정상 동작 하지만 Chrome에서는 오류가 발생한다. a. 이를 해결하기 위해 찾아 본 내용을 정리한다. #내용 1. 설정 a. form 설정 b. header 설정 _xmlHttp.setRequestHeader("Content-Type", "multipart/form-data; charset=utf-8"); 2. 오류 a. Separation boundary was not specified i. 분리 경계가 지정되지 않았다. b. IE에서는 정상 동작하니 IE 실행 시 Request Header의 Content-Type을 살펴보면 아래와 같다. i. Chrome의 경우도 메모를 해놓았어야 했는데 당시에 따로 메모를 안해두었다. c. multipart form..

개발/JSP 및 PHP 2020.11.15

[jsp] jsp 수정 사항이 적용되지 않을 때

#목적 1. jsp 및 js를 수정한 뒤에 새로고침을 수행하여도 적용이 되질 않았고 이에 대한 내용을 정리한다. 2. jsp에서 js를 호출하는 상황이다. #내용 1. Frame만 Reflash해주면 된다고 하셨다. a. Browser 내부에서 우클릭 후 새로고침 b. 이유는 Server와 Client 사이의 통신 중 캐싱메커니즘이 문제인거 같다고 추측 서로 요청한 리소스의 시간을 체크해서 시간차이에 따라 전송을 해야하는데 시간차이가 얼마가 나던 같은 URL이면 전송을 하지 않을 때가 있다고 한다. 2. 이를 위해 jsp에서 js호출 시 끝에 쓸모없는 내용을 담아 전송해주었다. a. 아래와 같이 _ts변수에 현재 시간을 담아서 보내주면 호출할 때 마다 계속해서 다른 값이 넘어가게 되면서 수정된 내용이 적..

개발/JSP 및 PHP 2020.11.15

[java] Socket과 Stream

#목적 1. Socket Stream을 사용하면서 배운 내용을 정리한다. #내용 1. Socket사용 예시 a. Socket 연결 b. Socket Output Stream 생성 c. 정보 전달 d. Socket Input Stream 생성 e. 정보 받음 2. 1.c에서 정보를 전달하였으니 OutputStream을 필요 없다고 판단 3. OutputStream Close 후 InputStream생성 후 사용 a. OutputStream.close() 4. 이때 Socket이 닫혀서 사용이 불가하다는 오류 발생 5. 나는 Stream을 닫았는데 왜 Socket이 닫혔다는 거지? 6. Stream을 닫으면 해당 Socket도 닫힌다고 한다. 이에 Stream만 닫고 싶다면 shutdown을 사용해야한다. ..

개발/Java 2020.11.14

[java] Annotation 인식

#목적 1. Annotation을 쓰는 이유 #내용 1. class의 별명을 명시해준다. a. 사용법 i. @Service("Login") 2. 1번이 내가 그동안 이해하고 사용한 이유였다. 그런데 이번 글을 옮겨 적으며 찾아보니 많이 잘못 이해하고 있었다. Annotation은 소스코드에 특정 정보를 주입해준다. 이를 통해 비즈니스 로직에는 영향을 주지 않지만 해당 타겟의 연결 방법(내가 그동안 사용한 1번 기능)이나 소스코드의 구조를 변경할 수 있다. 1번에서 사용한 기능은 Custom Annotation으로 내가 Service라는 Annotation을 정의하고 이를 통해 해당 Annotation이 붙은 class는 Service임을 알려준 것이다. Annotation은 @Override, @Depr..

개발/Java 2020.11.11