분류 전체보기
-
SSO - Single Sign-On Web 로그인 인증방식 중의 하나이며, 한 번의 로그인으로 다양한 어플리케이션을 재 로그인 없이 이용할 수 있는 통합인증을 의미한다. 이 로그인 인증방식은 이미 우리가 실생활에서 굉장히 많이 접하고 있는 로그인 방식이다. - SSO의 필요성 실생활에서의 예를 들어보자. 나는 카카오톡, 페이스북, 넷플릭스 세가지 어플리케이션을 주로 이용하고 있다. 이 세 개의 어플리케이션을 이용하기 위해선 각각의 계정이 필요하며 사용할 때 로그인을 요구한다. 각각의 사용자 정보를 저장하는 방식이 다르기 때문에 각각의 계정으로 해당하는 어플리케이션에만 로그인할 수 있다. 하지만 이렇게 독립된 어플리케이션이 아닌 하나의 회사에서 제공하는 서비스를 이용한다면 굳이 하나의 회사에서 사용자 정..
[IT 정보] SSO - Single Sign-OnSSO - Single Sign-On Web 로그인 인증방식 중의 하나이며, 한 번의 로그인으로 다양한 어플리케이션을 재 로그인 없이 이용할 수 있는 통합인증을 의미한다. 이 로그인 인증방식은 이미 우리가 실생활에서 굉장히 많이 접하고 있는 로그인 방식이다. - SSO의 필요성 실생활에서의 예를 들어보자. 나는 카카오톡, 페이스북, 넷플릭스 세가지 어플리케이션을 주로 이용하고 있다. 이 세 개의 어플리케이션을 이용하기 위해선 각각의 계정이 필요하며 사용할 때 로그인을 요구한다. 각각의 사용자 정보를 저장하는 방식이 다르기 때문에 각각의 계정으로 해당하는 어플리케이션에만 로그인할 수 있다. 하지만 이렇게 독립된 어플리케이션이 아닌 하나의 회사에서 제공하는 서비스를 이용한다면 굳이 하나의 회사에서 사용자 정..
2023.12.01 -
Serialization - serialVersionUID JAVA에서 생성한 특정 객체를 파일로 저장하기 위해 코드를 작성하여 저장하고 읽어오는 로직을 구현했는데 컴파일할 때 아래와 같은 에러가 발생했다. 위의 에러가 발생한 이유를 찾다 보니 객체를 파일, 메모리, 데이터베이스로 저장하는 과정에는 직렬화(Serialization)가 필요하다고 한다. - 직렬화(Serialization)란 무엇인가? 그렇다면 직렬화(Serialization)는 무엇인가? 위에서 설명한 것과 같이 자바(JAVA)에서는 직렬화(Serialization)는 어떤 객체를 파일, 메모리, 데이터베이스 등으로 저장할 때 해당 객체를 바이트 배열로 변환시켜 저장시킨다고 한다. 이렇게 저장된 것을 다시 객체로 되돌리는 것을 역직렬화(..
[Java] Serialization - serialVersionUIDSerialization - serialVersionUID JAVA에서 생성한 특정 객체를 파일로 저장하기 위해 코드를 작성하여 저장하고 읽어오는 로직을 구현했는데 컴파일할 때 아래와 같은 에러가 발생했다. 위의 에러가 발생한 이유를 찾다 보니 객체를 파일, 메모리, 데이터베이스로 저장하는 과정에는 직렬화(Serialization)가 필요하다고 한다. - 직렬화(Serialization)란 무엇인가? 그렇다면 직렬화(Serialization)는 무엇인가? 위에서 설명한 것과 같이 자바(JAVA)에서는 직렬화(Serialization)는 어떤 객체를 파일, 메모리, 데이터베이스 등으로 저장할 때 해당 객체를 바이트 배열로 변환시켜 저장시킨다고 한다. 이렇게 저장된 것을 다시 객체로 되돌리는 것을 역직렬화(..
2023.12.01 -
에러로그 - 주요 에러 문구 org.apache.catalina.core.StandardWrapperValve invoke .... Insupported major.minor version 51.0 .... - 개발환경 JDK : jdk1.6.0_45 WAS : tomcat 7.0.82 발생원인 로컬에서 프로젝트 세팅 후 가동할 때 발생하는데 구글링을 하며 찾아보니 Java의 컴파일 버전과 실행 버전이 달라서 발생하는 에러라고 한다. 즉, 컴파일 버전보다 이하 버전에서 실행되었을 때 발생하는 에러이다. - 발생 CASE 1. Tomcat6에서 JDK 1.7로 컴파일된 프로젝트를 실행하는 경우 2. JDK 1.7로 컴파일하고 JDK 1.6 버전이 기본인 되는 PC에서 실행했을 경우 위의 2가지 이유 외 실..
[Tomcat] Unsupported major.minor version 51.0에러로그 - 주요 에러 문구 org.apache.catalina.core.StandardWrapperValve invoke .... Insupported major.minor version 51.0 .... - 개발환경 JDK : jdk1.6.0_45 WAS : tomcat 7.0.82 발생원인 로컬에서 프로젝트 세팅 후 가동할 때 발생하는데 구글링을 하며 찾아보니 Java의 컴파일 버전과 실행 버전이 달라서 발생하는 에러라고 한다. 즉, 컴파일 버전보다 이하 버전에서 실행되었을 때 발생하는 에러이다. - 발생 CASE 1. Tomcat6에서 JDK 1.7로 컴파일된 프로젝트를 실행하는 경우 2. JDK 1.7로 컴파일하고 JDK 1.6 버전이 기본인 되는 PC에서 실행했을 경우 위의 2가지 이유 외 실..
2023.12.01 -
🍃 Crontab crontab은 Linux 운영체제에서 시간 기반 잡 스케줄러이다. 즉, 원하는 시간에 원하는 작업을 수행할 수 있게 해주는 작업 스케줄러라고 보면 된다. 예를 들어 장고에서 로그인을 했을 때, session으로 구현된 로그인이라면 django-session에 session정보가 저장되었다가 로그아웃하면 삭제가 된다. 하지만 브라우저가 닫히거나 만료시간이 지나게 되면 session정보는 유지되며 로그아웃 처리가 되기 때문에 계속되는 로그인 많아지면 불필요한 session 데이터가 쌓여 자리를 차지하게 된다. 이때 특정 시간이 되면 만료가 된 session정보를 삭제해 줬으면 좋겠다. 위의 기능을 대신 해주는 것이 바로 crontab!!이다. 🌱 django-crontab 설치 먼저 다음..
[Django] django-crontab 스케줄러 작성🍃 Crontab crontab은 Linux 운영체제에서 시간 기반 잡 스케줄러이다. 즉, 원하는 시간에 원하는 작업을 수행할 수 있게 해주는 작업 스케줄러라고 보면 된다. 예를 들어 장고에서 로그인을 했을 때, session으로 구현된 로그인이라면 django-session에 session정보가 저장되었다가 로그아웃하면 삭제가 된다. 하지만 브라우저가 닫히거나 만료시간이 지나게 되면 session정보는 유지되며 로그아웃 처리가 되기 때문에 계속되는 로그인 많아지면 불필요한 session 데이터가 쌓여 자리를 차지하게 된다. 이때 특정 시간이 되면 만료가 된 session정보를 삭제해 줬으면 좋겠다. 위의 기능을 대신 해주는 것이 바로 crontab!!이다. 🌱 django-crontab 설치 먼저 다음..
2023.05.22 -
🍃 파이썬에서의 다형성 Java 언어의 다형성을 다루면서 오버라이딩과 오버로딩에 대해 알아보았다. 그렇다면 Python에서도 언어의 다형성이 있는지 살펴보려고 한다. Java 오버라이딩과 오버로딩 [Java] Java 다형성과 오버로딩, 오버라이딩 🍃 Java 다형성 ✔️ 다형성 이란 하나의 함수, 클래스가 다양한 방법으로 동작하는 것을 말한다. Java에서는 주로 오버로딩(Overloading)과 오버라이딩(Overriding) 을 통해서 다형성을 지원한다. 🌱 오 geminihoroscope.tistory.com 🌱 오버로딩(Overloading) ✔️ 파이썬에서는 오버로딩을 정식으로 지원하지 않는다고 한다. 하지만 구현은 가능하지만 오버로딩을 남발하면 코드가 복잡해진다. ✔️ 파이썬에서는 연산자 오..
[Python] 파이썬 오버라이딩과 오버로딩🍃 파이썬에서의 다형성 Java 언어의 다형성을 다루면서 오버라이딩과 오버로딩에 대해 알아보았다. 그렇다면 Python에서도 언어의 다형성이 있는지 살펴보려고 한다. Java 오버라이딩과 오버로딩 [Java] Java 다형성과 오버로딩, 오버라이딩 🍃 Java 다형성 ✔️ 다형성 이란 하나의 함수, 클래스가 다양한 방법으로 동작하는 것을 말한다. Java에서는 주로 오버로딩(Overloading)과 오버라이딩(Overriding) 을 통해서 다형성을 지원한다. 🌱 오 geminihoroscope.tistory.com 🌱 오버로딩(Overloading) ✔️ 파이썬에서는 오버로딩을 정식으로 지원하지 않는다고 한다. 하지만 구현은 가능하지만 오버로딩을 남발하면 코드가 복잡해진다. ✔️ 파이썬에서는 연산자 오..
2023.05.16 -
🍃 Java 다형성 ✔️ 다형성 이란 하나의 함수, 클래스가 다양한 방법으로 동작하는 것을 말한다. Java에서는 주로 오버로딩(Overloading)과 오버라이딩(Overriding) 을 통해서 다형성을 지원한다. 🌱 오버로딩(Overloading) : 확장 ✔️ 함수가 여러 개의 동일한 이름을 가지며 매개변수의 유형과 개수 가 다르게 설정되어 사용하는 것을 의미한다. ✔️ 오버로딩은 함수 오버로딩 과 생성자 오버로딩 이 있으며 실제 적용되는 것은 같다. 같은 이름의 함수를 여러 개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게 하는 방식이다.(일반적으로 하나의 클래스 안에 동일한 이름의 함수를 작성하게 되면 에러가 발생한다.) ➤ 오버로딩 예제 public cl..
[Java] Java 다형성과 오버로딩, 오버라이딩🍃 Java 다형성 ✔️ 다형성 이란 하나의 함수, 클래스가 다양한 방법으로 동작하는 것을 말한다. Java에서는 주로 오버로딩(Overloading)과 오버라이딩(Overriding) 을 통해서 다형성을 지원한다. 🌱 오버로딩(Overloading) : 확장 ✔️ 함수가 여러 개의 동일한 이름을 가지며 매개변수의 유형과 개수 가 다르게 설정되어 사용하는 것을 의미한다. ✔️ 오버로딩은 함수 오버로딩 과 생성자 오버로딩 이 있으며 실제 적용되는 것은 같다. 같은 이름의 함수를 여러 개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게 하는 방식이다.(일반적으로 하나의 클래스 안에 동일한 이름의 함수를 작성하게 되면 에러가 발생한다.) ➤ 오버로딩 예제 public cl..
2023.05.15 -
✔️ Windows에서 자바를 사용했던 입장에서, M1 맥북에서 Java를 사용하려고 하니 어떻게 환경세팅을 해야하는지 막막하길래 이번 기회에 설치하고 정리하려고 한다. 🍺 homebrew 설치 [macOS] M1 Mac 에 brew 설치하는 방법! 최근! 아이패드 가격사태를 보고 맥북프로 2017 이후 5년만에 쿠팡에서 M1 Max 맥북프로 16인치를 구매하였습니다. 새로 구매를 하였으니 개발환경을 세팅하기 위하여 가장 먼저! brew 를 설치해주었 somjang.tistory.com ✔️ homebrew가 기본적으로 설치되어 있는 프로그램이 아니기 때문에 사용하기 위해서 먼저 설치를 진행하자. brew update 시 Error 발생(Ventura 업데이트 이후) [macOS] brew update ..
[Java] 맥북에서 Java 환경세팅(VSCODE)✔️ Windows에서 자바를 사용했던 입장에서, M1 맥북에서 Java를 사용하려고 하니 어떻게 환경세팅을 해야하는지 막막하길래 이번 기회에 설치하고 정리하려고 한다. 🍺 homebrew 설치 [macOS] M1 Mac 에 brew 설치하는 방법! 최근! 아이패드 가격사태를 보고 맥북프로 2017 이후 5년만에 쿠팡에서 M1 Max 맥북프로 16인치를 구매하였습니다. 새로 구매를 하였으니 개발환경을 세팅하기 위하여 가장 먼저! brew 를 설치해주었 somjang.tistory.com ✔️ homebrew가 기본적으로 설치되어 있는 프로그램이 아니기 때문에 사용하기 위해서 먼저 설치를 진행하자. brew update 시 Error 발생(Ventura 업데이트 이후) [macOS] brew update ..
2023.05.15 -
🍃 파이썬으로 구현하는 머신러닝 / 딥러닝 알아보기 ✔️ 이전에도 핫이슈가 되고 있는 인공지능 분야인 머신러닝 과 딥러닝 에 대핵서 공부해보려고 한다. ✔️ 머신러닝 과 딥러닝 을 구글 텐서플로우같은 라이브러리를 사용하면 쉽고 빠르게 개발할 수 있지만 이 머신러닝과 딥러닝은 내부 구조가 블랙박스로 제공되기 때문에 어떻게 동작되는지, 또는 코드로 어떻게 구현되는지 알 수 없다는 단점이 있다. ✔️ 그래서 유튜브 박성호님의 머신러닝 / 딥러닝 강의를 들으며 파이썬으로 어떻게 작동되며 코드로는 어떻게 구현이 되는지 알아보려고 한다. 머신러닝 강의 🌱 4차 산업 혁명 배경 ✔️ 학자에 따라 정의는 조금씩 다르지만, 대체로 4차 산업혁명 은 모든 것이 연결되어(Connectivity) 있는 환경에서 인공지능(Ar..
[딥러닝] 딥러닝이란?🍃 파이썬으로 구현하는 머신러닝 / 딥러닝 알아보기 ✔️ 이전에도 핫이슈가 되고 있는 인공지능 분야인 머신러닝 과 딥러닝 에 대핵서 공부해보려고 한다. ✔️ 머신러닝 과 딥러닝 을 구글 텐서플로우같은 라이브러리를 사용하면 쉽고 빠르게 개발할 수 있지만 이 머신러닝과 딥러닝은 내부 구조가 블랙박스로 제공되기 때문에 어떻게 동작되는지, 또는 코드로 어떻게 구현되는지 알 수 없다는 단점이 있다. ✔️ 그래서 유튜브 박성호님의 머신러닝 / 딥러닝 강의를 들으며 파이썬으로 어떻게 작동되며 코드로는 어떻게 구현이 되는지 알아보려고 한다. 머신러닝 강의 🌱 4차 산업 혁명 배경 ✔️ 학자에 따라 정의는 조금씩 다르지만, 대체로 4차 산업혁명 은 모든 것이 연결되어(Connectivity) 있는 환경에서 인공지능(Ar..
2023.05.08 -
✔️ EC2서버에서 일반적인 Django를 이용한 서버 배포 작업도 도움이 많이 되었다. ❗️ 요즘 추세로 DepOps에서 이용되는 MSA형태의 서버 배포 방식의 기본이 되는 Docker 배포 방식을 익히기 위해 docker-compose로 프로젝트를 배포해 보려고 한다. 🍃 EC2 1. 깃허브 repo 서버로 이동 ➤ 프로젝트 폴더 생성 $ mkdir workspace ✔️ 프로젝트 작업물이 들어가 폴더를 생성한다. ➤ Git repo 받기 $ git clone -b ✔️ 현재 main 레포지터리는 최신 상태가 아니기 때문에 develop 레포지터리를 clone 받도록 하자. 2. 서버에서 사용될 패키지 update 및 설치 ➤ 사용 가능한 패키지 및 버전 정보 업데이트 $ sudo apt update..
[Docker] docker-compose를 이용한 프로젝트 배포✔️ EC2서버에서 일반적인 Django를 이용한 서버 배포 작업도 도움이 많이 되었다. ❗️ 요즘 추세로 DepOps에서 이용되는 MSA형태의 서버 배포 방식의 기본이 되는 Docker 배포 방식을 익히기 위해 docker-compose로 프로젝트를 배포해 보려고 한다. 🍃 EC2 1. 깃허브 repo 서버로 이동 ➤ 프로젝트 폴더 생성 $ mkdir workspace ✔️ 프로젝트 작업물이 들어가 폴더를 생성한다. ➤ Git repo 받기 $ git clone -b ✔️ 현재 main 레포지터리는 최신 상태가 아니기 때문에 develop 레포지터리를 clone 받도록 하자. 2. 서버에서 사용될 패키지 update 및 설치 ➤ 사용 가능한 패키지 및 버전 정보 업데이트 $ sudo apt update..
2023.05.08 -
[22.11.27] 🍃 구현하고자 하는 화면 1. 이전 개발 단계에서 사이트를 등록하여 해당 사이트에 Tag를 Many-to-Many관계로 등록하는 진행 2. 이제 태그가 등록된 사이트를 최신순으로 4~6개 조회 후 등록된 모든 태그를 조회하여 하단에 Tag button형태로 동적으로 뿌려주는 작업을 진행할 것이다. 3. 위와 같이 진행하기 위해서 Site항목을 조회할 뿐 아니라 Many-to-Many관계로 등록된 태그도 조회를 해야하기 때문에 Serializer 작업을 진행하게 되었다. 물론 api 2개를 요청하여 각각 사이트 데이터, 태그 데이터 조회할 수도 있지만 2번을 요청한다는 것 자체가 비효율적이며 drf에 존재하는 serialize를 활용하지 못한다고 판단 1. views.py > TagsA..
[ISSUE] Tag 포함된 Site 모델의 serialize 처리[22.11.27] 🍃 구현하고자 하는 화면 1. 이전 개발 단계에서 사이트를 등록하여 해당 사이트에 Tag를 Many-to-Many관계로 등록하는 진행 2. 이제 태그가 등록된 사이트를 최신순으로 4~6개 조회 후 등록된 모든 태그를 조회하여 하단에 Tag button형태로 동적으로 뿌려주는 작업을 진행할 것이다. 3. 위와 같이 진행하기 위해서 Site항목을 조회할 뿐 아니라 Many-to-Many관계로 등록된 태그도 조회를 해야하기 때문에 Serializer 작업을 진행하게 되었다. 물론 api 2개를 요청하여 각각 사이트 데이터, 태그 데이터 조회할 수도 있지만 2번을 요청한다는 것 자체가 비효율적이며 drf에 존재하는 serialize를 활용하지 못한다고 판단 1. views.py > TagsA..
2023.05.06