본문 바로가기

Development

(98)
[Docker]docker, docker swarm, docker compose 간단 정리 Concepts 애플리케이션의 개발, 배포, 실행을 컨테이너를 통해 가능하게 해주는 플랫폼. 컨테이너란 개념은 새로운 것이 아니며, 이전과 달리 새로운 것은 어플리케이션을 쉽게 컨테이너를 통해서 배포하게 해줌. Container? Image? 컨테이너는 실행되고 있는 이미지에 의해 launch 된다. Image 런타임, 라이브러리, 환경 변수, 설정 등 즉 어플리케이션을 실행하기 위한 모든 것을 포함하는 실행 가능한 패키지 Container 실제로 이미지 위에서 실행되고 있는 런타임 인스턴스 Container VS VM VM의 경우 각각 자신만의 OS를 갖고있음 컨테이너는 기존의 OS 위에서 구동됨 Dockerfile? Container의 환경을 정의하는 파일 # syntax=docker/dockerfi..
[django] Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField' 경고? 경고 내용을 읽어보면 각 모델에서 primary key 타입을 명시하지 않아서 생긴 경고입니다. 하지만 장고에선 자동으로 primary key로 사용할 타입을 자동으로 설정해준다고 합니다. By default, Django gives each model an auto-incrementing primary key with the type specified per app in AppConfig.default_auto_field or globally in the DEFAULT_AUTO_FIELD setting. For example: id = models.BigAutoField(primary_key=True) 위 코드는 모델에서 사용할 primary key를 BigAutoField(1부터 시작하는 64bi..
[django] class-based view와 function-based view? 학교 웹서버 컴퓨팅 수업에서 프로젝트를 진행하다가 간단한 홈페이지를 만들고 싶어서 HomeView를 어떻게 구현할까 찾던 중에 class-based view라는 것을 알게 되었습니다. 학교 수업 시간에 배운 View는 다음과 같았습니다. @login_required(login_url="common:login") def question_create(request): """ pybo 질문등록 """ if request.method == "POST": form = QuestionForm(request.POST) if form.is_valid(): question = form.save(commit=False) question.author = request.user # 추가한 속성 author 적용 questio..
[특강] 기술 전환점에서의 오픈소스와 개발자 - 래블업 신정규 대표님 특강 일정: 2023년 5월 15일 (월) 특강 장소: 국민대학교 미래관 611호 제목: 기술 전환점에서의 오픈소스와 개발자 발표자: 신정규 대표/연구원 (구글 Developers Experts, (주)래블업) 요약: 이 강연은 오픈소스 활동과 함께한 20년 동안 발표자가 경험한 다양한 삶의 이야기들과 함께, 소프트웨어 개발자들이 시대의 변화를 마주하는 방법에 대한 시각을 나눕니다. 한국에 몇 없는 구글 개발자인 신정규 대표님의 강연을 듣게 되어 영광이었습니다. 소중한 강연을 들을 기회를 마련해 주신 국민대학교 김상철 교수님께 감사드립니다. 강연을 통해 앞으로 프로그래머가 준비해야 할 기술들과 임해야 할 자세, 그리고 오픈소스의 기능과 중요성을 느끼게 해 준 특강이었습니다. 프로그래밍의 의미? 20세기 ..
[특강]개발자는 코딩하는 사람이 아니다 위 링크 영상을 바탕으로 작성한 글입니다. "개발자라 한다면 스스로를 코딩하는 사람으로 정의하지 않았으면 좋겠다" "비즈니스 문제를 해결하는 사람으로 생각하는 것이 좋겠다." 배달의민족 김범준 대표의 좋은 개발자란 어떤 사람인지의 대해서 나오는 영상입니다. 엘리베이터를 기다리는 것이 지루하다는 문제가 있다고 생각해 봅시다. 사람들은 '엘리베이터가 늦게 오는 것 같다'라고 말합니다. 이에 대해 어떤 두 회사는 각각 다른 방법으로 문제를 해결합니다. A 회사는 많은 돈을 써서 엘리베이터 속도를 높이는 공사를 합니다. B 회사는 엘레베이터 앞에 거울을 설치합니다. A 회사는 엘리베이터가 실제로 느리다고 문제를 해석했고, B 회사는 엘리베이터를 기다리는 그 순간의 지루함을 문제로 해석하였습니다. 엘레베이터를 ..
[Spring]Github Actions로 Springboot CI 구현하기, postgres 설정 여기서 CI/CD란? CI/CD는 Continuous Integration(지속적 통합) / Continuous Delivery(지속적 전달)의 줄임말입니다. 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 배포할 수 있습니다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "통합 지옥(integration hell)")를 해결하기 위한 솔루션입니다. "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합됩니다. 따라서 여러 명의 개발자가 동시에 애플리케이션 개발과 관련..
[Tip] YouTube Music for Mac 맥에서 유튜브 뮤직 사용하기 매번 브라우저로 유튜브 뮤직 탭을 들어가서 노래를 바꾸는 번거로움이 있어 App Store에 검색을 해보았지만... 지원하지 않는군요 그래서 없을까 해서 찾아보았는데 정식은 아니지만 App으로 사용할 수 있도록 개발하여 배포해 주시는 분이 있어 공유해 드립니다. 우선 URL 접속해 봅시다. https://github.com/steve228uk/YouTube-Music GitHub - steve228uk/YouTube-Music: A Mac app wrapper for music.youtube.com :musical_note: A Mac app wrapper for music.youtube.com - GitHub - steve228uk/YouTube-Music: A Mac app wrapper for mu..
[개발 일기][Spring]Spring Security에서 AccessDeniedHandler 와AuthenticationEntryPoint Spring Security는 유저에 대한 인증 및 권한처리를 가능하게 해주는 spring 보안 프레임워크입니다. 저는 프로젝트를 진행하면서 @RestControllerAdvice를 사용해 전역적으로 예외 처리를 하도록 하였으나, 기대한 HTTP status code와 에러 메시지와는 달리 403 Fobidden만 응답받을 뿐이었습니다. 이 문제는 User가 로그인을 하지 않은 채, 서비스의 접근할 경우 발생한 예외였습니다. 즉 인증되지 않은 클라이언트가 서버에 요청을 보냈을 때의 발생한 상황이었습니다. 조사해 보니 Spring Security의 Filter Chain으로 발생한 예외는 서블릿 필터 단계에 속하는 부분이기 때문에 @RestControllerAdvice와 같은 어노테이션으로 예외 처리를 ..