본문 바로가기

전체 글62

Mac m1에서 자바 버전 변경하기(brew 사용) 다른 jdk를 사용중 , jdk8을 사용할 일이 생겨 생각보다 쉬울거라 생각했던 버전 변경이 애를 먹어 글을 작성하게 되었습니다. 저와 같이 처음부터 brew를 사용해서 jdk를 설치한 것이 아닌, 오라클에서 제공하는 jdk를 직접 다운받아 사용하다가 brew를 사용해 다른 버전을 설치했을 때 제 글이 도움 될 것 같습니다. 우선 brew를 통해 openjdk를 설치합니다. $ brew tap adoptopenjdk/openjdk 그 다음 원하는 jdk의 버전을 다운 받아 줍시다. (저는 jdk8 버전을 설치해 주었습니다 :) ) brew install --cask 원하는버전의jdk 자바가 설치되는 폴더로 가서 이제 제가 원하는 자바가 잘 깔렸는지 버전을 확인해 볼까요? cd Library/Java/Ja.. 2023. 10. 17.
세션(Session) with JSP 세션 클라이언트가 웹 브라우저를 통해 서버에 접속한 후 용무를 처리하고 웹브라우저를 닫아 서버와의 접속을 종료하는 하나의 단위. 로그인과 같이 클라리언트가 서버에 접속해 있는 동안 그 상태를 유지하는 것 세션의 유지 시간을 설정하는 방법 2가지 (세션 유지시간 20분) 1. 프로젝트 내 WEB-INF/web.xml 파일에 해당 내용 추가 ... 20 2. JSP 파일에서 session 내장 객체가 제공하는 메소드 사용 세션 삭제 세션은 웹 브라우저를 닫으면 종료되기도 하지만 쿠키를 삭제해 세션을 종료할 수도 있습니다. 서버를 통해 세션을 유지하기 위해 SessionID를 자동으로 생성해주는데 이 ID를 통해 세션이 살아있는지 확인하게 됩니다. 하지만 쿠키를 삭제해버리면 SessionID도 사라지므로 서버.. 2023. 8. 18.
User defaults 로컬 데이터 저장 앱의 로컬 저장소를 이용하여 데이터를 영구적으로 저장하는 방식은 User defaults 말고도 Core Data, Realm 등이 있습니다. 대용량의 데이터와 복잡한 데이터 처리를 위해서는 Core Data와 같은 저장방식을 사용하는 것이 좋지만, 저장할 데이터의 양이 적고 앱의 설정과 같은 간단한 저장을 원하는 경우에는 User defaults를 사용하는 것이 적절할 수 있습니다. 또한 User defaults는 저장할 정보를 기기의 PList 파일에 저장시키기 떄문에 보안이 취약할 여지가 있어 중요한 정보들은 저장하지 않는 것이 좋습니다. User defaults를 사용해 봅시다. User defults를 사용하기 위해서는 UIKit을 import 시켜줘야 합니다. import U.. 2023. 8. 4.
쿠키(Cookie) with JSP 쿠키 쿠키(Cookie)는 클라이언트의 상태와 정보를 유지하기 위한 기술입니다. 상태 정보를 클라이언트(주로 웹 브라우저)에 Key와 Value형태로 저장했다가 다음 요청 시 저장된 쿠키를 함께 전송합니다. 언제 방문했는지, 어떤 페이지를 클릭했는지, 어떤 상품을 구매했는지 등 다양한 정보를 기록해두었다가 사용자 맞춤 서비스, 광고, 웹 로그 분석, 서비스 속도 개선 등을 할 수 있습니다. 쿠기 표준은 쿠키를 만들 수 있는 개수와 크기의 제약을 두며 브라우저 마다 지원하는게 다릅니다. 쿠키 동작 메커니즘 클라이언트가 서버에 요청을 보내면 서버가 쿠키를 생성하여 HTTP 응답 헤더에 실어 클라이언트에 전송합니다. 클라이언트는 쿠키를 받아 저장해두고 클라이언트는 다음번 요청 시 저장해둔 쿠키를 HTTP 요청.. 2023. 6. 21.
JSP 내장 객체(Implicit Object) 내장 객체란? 웹은 클라이언트가 서버로 요청을 보내면, 서버는 맞는 결과를 응답으로 돌려주는 형태로 동작합니다. 이때 JSP의 내장 객체는 요청과 응답 혹은 HTTP 헤더 등의 정보를 쉽게 다룰 수 있도록 해줍니다. 내장 객체는 JSP 페이지가 실행될 때 컨테이너가 자동으로 생성해줍니다. 내장 객체는 다음과 같은 특징을 가지고 있습니다 컨테이너가 미리 선언해놓은 참조 변수를 이용해 사용합니다. 별도의 객체 생성 없이 각 내장 객체의 메서드를 사용할 수 있습니다. JSP 문서 안의 과 에서만 사용할 수 있습니다. 에서는 즉시 사용하는 건 불가능하고, 매개변수로 전달받아 사용할 수는 있습니다. 내장 객체는 총 아홉가지가 있습니다. 내장 객체 타입 설명 request javax.servlet.http.Http.. 2023. 6. 20.
JSP 동작과 기본구조 및 용어 서버 웹에서 서비스를 제공하는 컴퓨터 시스템. 서비스를 제공하는 웹 애플리케이션은 서버 컴퓨터에 파일의 형태로 저장되어 있습니다. 웹서버 사용자로부터 HTTP를 통해 요청을 받거나, 웹 컨테이너가 전달해준 결과물을 정적인 페이지로 생성하여 사용자에게 응답해주는 소프트웨어. 웹 컨테이너 웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려줍니다. WAS(Web Application Server) 웹 애플리케이션이 실행될 수 있는 환경을 제공하는 소프트웨어. 컴퓨터에서 운영체제와 비슷한 역할을 하는 소프트웨어라 할 수 있습니다. 웹 서버와 웹 컨테이너를 포함한 개념. ex) 톰캣, 웹로직, 웹스피어 등 HTTP(HyperText Transfer Protocol) / HTTPS(HTTP .. 2023. 6. 20.
M1에서 오라클DB 실행하기 Coima 설치 brew install colima https://github.com/abiosoft/colima homebrew가 없다면 위 링크에서 설치 Docker 설치 brew install --cask docker https://www.docker.com/products/docker-desktop/ brew가 없다면 위 링크에서 설치 Colima 실행 colima start --memory 4 --arch x86_64 이제 원하는 버전의 오라클 DB설치를 위해 docker에서 검색후 설치한다. docker search oracle-xe-21c docker pull samdesmondking/oracle-21c-xe 도커를 이용해 설치한 오라클 실행 docker run --name oracle -.. 2023. 5. 25.
Swift 참조 해제 확인하는 방법 Swift에서 객체가 초기화 되고 사용이 다한 객체는 Deeinialization이 되어야 합니다. 하지만 객체가 강한 참조상태가 되면 계속 메모리를 가지고 놓아주질 않습니다. 객체가 초기화 해제가 됐는지 확인하기 위해서는 클래스를 생성할때 init() {} init 메소드를 통해서 초기화 해주었던 것 처럼 deinit {} deinit 메소드를 통해서 해당 객체가 모든 참조를 없앴는지 확인할 수 있습니다. 메소드 안에 print 문을 통해서 강한 참조가 일어 났는지 아닌지 확인할 수 있는 방법 중 하나 일 것 같습니다. 2023. 3. 21.
swift 메모리 주소 출력문 print(Unmanaged.passUnretained(주소를 알고싶은 변수!).toOpaque()) 이렇게 print 문을 작성하면 해당 변수의 메모리 주소를 볼 수 있다. 참조관련하여 디버깅할 때 도움이 될거 같다. 2023. 3. 21.