본문 바로가기

개발공부

(19)
JavaSpring @RequestHeader 사용시 주의점 문제 사항 프로젝트에서 요청받은 전체 Header 정보가 필요했다. JavaSpring에서 지원해 주는 @RequestHeader를 통해 전체 Header 정보를 HashMap에 담아 사용을 했다. 로컬 서버를 돌려 기능 테스트 해보니 정상적으로 HashMap에서 Header 정보를 가져오지 못하고 있었다. ✔ 이유 Header의 key값이 잘못 되었던 것이었다. AWS CF에서 전달해 주는 Header를 명세를 확인하고 정확히 입력을 했는데도 불구하고 실제 출력해 보니 대문자, 소문자 차이가 있었던 것이다. ✔ HttpServletRequest.getHeader는 정상적으로 돌아갔던 이유 그동안 사용했던 HttpServletRequest.getHeader는 대소문자 구분 없이 정상적으로 돌아갔다. 그..
[ IDE ] IntelliJ 터미널 한글이 깨지는 문제 문제 사항 팀원 분과 숫자 야구를 만들 때 IntelliJ에서 코드를 짜서 실행을 했다. 이때 터미널에 출력한 한글이 깨져 보이는 현상이 나타났다. 원인 파악 Java의 경우 인코딩이 UTF-8로 설정이 되어 있었고 터미널의 경우 윈도우 환경이다 보니 인코딩이 CP-949로 설정이 되어있었다. 인코딩이 맞지 않아 실행한 프로그램이 출력한 한글이 깨지는 현상이 발생한 것이다. 해결 방안 IntelliJ의 실행 티미널의 인코딩을 UTF-8로 변경을 해줌으로 해결을 했다. 변경하는 방식은 아래 경로의 파일에 Dconsole.encoding 옵션을 추가해 주는 것이다. 파일 경로. "C:\Program Files\JetBrains\IntelliJ\bin\dea.exe.vmoptions" 추가 옵션. -Dcons..
[ 정규 ] Java 문법 종합반 2주차 궁금한 내용 강의에서 Deep Copy를 할 때 clone과 copyOf을 설명해 줬으며, copyOf를 사용하라고 알려줬다. clone은 2차원 배열 이상을 들어가면 복사가 제대로 이루어지지 않는다는 문제가 있기 때문이라고 했다. 정말 copyOf가 clone보다 깊은 복사를 더 잘 수행해 내는 것인지 의문이 들었다. copyOf도 똑같은 이슈가 존재한다면 어떤 방법을 사용하면 좋을지에도 고민이 되는 것 같다. 메서드 분석 정확한 동작을 파악하기 위해 clone과 copyOf의 코드 내부를 확인해보기로 했다. 하지만 두 메서드를 타고 들어갔을 때 사용되는 clone , arraycopy가 native 코드로 작성이 되어 있어 들여다보지 못했다. 이후에 native 코드까지 확인할 수 있다면 봐 보는 것..
[ GIT ] 다른 원격 저장소에서 커밋 내용 가져오기 이유 팀원 분들과 Git에서 저장소를 Fork 하고 Branch를 만들어 Readme.md를 수정 후 합치는 연습을 했다. 이 과정 중 첫 번째 팀원 분의 "저장소/Branch"에 커밋한 내용을 다른 분 저장소의 Branch에 불러오는 것이 안되었다. 구글링을 통해 Git 명령어에 대해서 학습을 하여 해결할 수 있었다. Git 명령어로 처리 명령어. 1. 내 원격 저장소를 클론 - git clone https://github.com/ironprayer/hh99-SA.git 2. 클론해온 로컬 저장소로 이동 - cd hh99-SA/ 3. 해당 branch로 이동 - git checkout ironprayer 4. 원격 저장소 URL 추가 - git remote add upstream https://gith..
[ 정규 ] Java 문법 종합반 1주차 JVM 정의. Java Virtual Machine은 다양한 환경(Window, Linux 등) 위에서 자바 프로그램을 실행시킬 수 있는 가상 기기 구성. 인터프리터 - 운영체제가 읽은 바이트코드를 기계가 실행할 수 있는 기계어로 번역 클래스 로더 - JVM으로 클래스를 불러와 메모리에 저장 메모리 영역 - 자바 데이터를 저장하는 영역 JIT 컴파일러 - 인터프리터의 효율을 높여주는 컴파일러 가바지 컬렉션 - 메모리 영역에서 안쓰는 데이터를 주기적으로 정리 JRE & JDK JRE(Java Runtime Environment) JVM, 자바 클래스 라이브러리 등을 포함하고 있는 자바 실행환경 JDK(Java Development Kit) JRE, 컴파일러, Javadoc 등을 포함하고 있는 자바 개발 도..
[ 사전스터디 ] 웹개발 종합반 5주차 AWS 배포 정의. AWS(Amazon Web Services)는 아마존에서 제공하는 안정성있고 확장 가능한 클라우드 컴퓨팅 서비스 배포 과정. 1. AWS 가입 - https://aws.amazon.com/console/ 2. IAM에서 Access Key 생성 3. Python 배포 폴더 및 파일 생성 4. Python AWS 패키지 설치 5. AWS 명령어를 통해 배포 Python 배포 폴더 및 파일 생성 배포 파일 및 폴더 준비. 1. deploy 폴더 생성 - mkdir deploy 2. app.py 복사 및 application.py 변경 - cp app.py deploy/application.py - [app = Flask(__name__)] -> [application = app = Fla..
[ 사전스터디 ] 웹개발 종합반 4주차 Flask 정의. 플라스크는 Python으로 작성된 마이크로 웹 프레임워크의 하나 설정. 1. app.py 파일 생성 - touch app.py 2. 가상환경 생성 및 적용 - python3 -m venv venv - source venv/bin/activate 3. flask 설치 - pip install flask 4. templates 폴더 생성 - mkdir templates 5. templates 아래에 index.html 파일 생성 - cd templates - touch index.html Flask 코드 설명 및 실행 Flask 시작 코드. if __name__ == '__main__': app.run('0.0.0.0', port=5000, debug=True) Post API 코드. ..
[ 사전스터디 ] 웹개발 종합반 3주차 Python 정의. 파이썬은 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어 자료형. 숫자, 문자, Boolean, 리트스, 딕셔너리로 구성 조건문. if (condition) : //logic else : // logic 반복문 list = [value1, value2, value3, ...] for element in list : //logic 함수. def functionName : //logic 웹 스크래핑 정의. 웹 페이지의 정보를 수집하는 일련의 행동 라이브러리. pip install bs4 pip install requests 코드. import requests from bs4 import Beauti..