Backend-dev 8

[Spring] 스프링 빌드 오류 모음 || sudo: ./gradlew: command not found 에러가 뜰 때

스프링 프로젝트 개발을 마치고 빌드를 실행하기 위해 ./gradlew build 를 수행해야 하는데, (관리자 권한으로 수행) 분명 작업 폴더에 접근했고 목록에 gradlew 가 있는 것을 봤는데도 수행이 안될 때가 있다. [CASE1] 우선 프로젝트 파일을 원격지에서 받아왔을 경우, 자바나 gradle 환경이 달라서 오류가 날 수는 있다. => gradle -v (gradle 버전 확인) , java --version (자바 버전 확인) 버전이 다르면 그에 맞게 업그레이드/다운그레이드를 해줘야 함 [CASE2] 무한 빌드 상태에 빠질 경우 (무한 빌드의 경우, 돌리고자 하는 서버의 메모리를 확인할 것. 본인은 클라우드를 사용하여 프리 티어로 받은 메모리가 1G밖에 되지 않아서 그런 것이었고 증설하니 문..

Backend-dev/Spring 2024.02.21

[Spring] 첫 실행시 로그인 화면이 뜨는 경우? / Please sign in

스프링 코드를 작성하고 서버를 돌렸는데 계속해서 이런 창이 떴다. 음.. 찾아보니 Provider 가 문제다, 하는데 내 생각엔 firebase Security 쪽 문제같아서 삽질을 또 했다. 그러다가 해결 방법을 발견! main 실행 코드에 @SpringBootApplication에 다음과 같이 exclude속성을 달아주면 끝이다. @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) 정상 작동을 확인.

Backend-dev/Spring 2024.02.05

[Spring] @Autowired 사용법? 스프링 빈 의존성 주입과 @RequiredArgsConstructor

의존성(Dependency)이란? A 클래스에서 b함수를 호출하기 위해서 B함수가 필요할 때, 'A클래스는 B클래스의 의존성을 가진다' 고 한다. 스프링 빈을 등록하고 의존성 주입을 할 때 @Autowired를 쓰면 의존성 주입이 편하다. 이렇게 config 파일에서 빈을 등록해주고, 컨트롤러에서 의존성 주입을 해주려는데 밑줄이 뜨면서 사용을 추천하지 않는다고 떴다. @Autowired의 장점은 매우 편리하다는 것. 단점은 -의존성 불분명성: @Autowired를 사용하면 코드가 어디서든 해당 빈을 주입할 수 있으므로 어떤 클래스가 어떤 빈을 주입하는지 명확히 파악하기 어려움 -코드의 복잡성 증가 등이 있다. 대신 사용할 수 있는 방법으로는 -생성자 주입(Constructor Injection) -Set..

Backend-dev/Spring 2024.02.05

[Spring] Firebase 초기 설정 / 스프링 프로젝트에 admin SDK 추가하기

이번에 새로 들어가게 된 프로젝트에서 소셜 로그인 인증 방식을 사용하기로 했다. 스프링부트 OAuth2 보안 설정을 직접 해주는 방법도 있지만, 다양한 소셜 로그인을 진행해야하므로 Firebase를 이용해보자. 먼저 Firebase 콘솔(https://firebase.google.com/?hl=ko) 에 접속해서 Firebase | Google’s Mobile and Web App Development Platform 개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요. firebase.google.com 구글 로그인 후, 프로젝트 생성-Authentication Sign-in-method-새 제공업체 추가 본인은..

Backend-dev/Spring 2024.02.04

[Python] Centos8 환경에서 디장고 개인 블로그 만들어보기 (4)

4. 관리자 계정 생성 및 배포하기 지난 번 관리자 페이지 화면에서 끝이 났었다. 이 관리자 페이지에서는 모델링한 글을 수정,삭제 할 수있는데 그러기 위해서 간단한 소스 설정을 해준다. blog/admin.py 이제 관리자 페이지에 로그인 할 수 있는 슈퍼유저를 생성한다. python manage.py createsuperuser 여기서 주의 점은, 가상환경을 반드시 활성화 시킨 후에 실행해야 한다는 것이다. 그러지 않으면 위와 같이 오류가 난다... 가상환경 셋팅 후, 정상적으로 관리자 계정이 만들어진 모습. 로그인해본다. 접속완료. 글을 써보자. 이제 내 컴퓨터에만 보이게 하는 것이 아닌 다른 사람이 볼 수 있게 배포를 해야 한다. Pythonanywhere를 이용해 서버에 배포를 할 예정이다. (무..

Backend-dev/Django 2022.01.21

[Python] Centos8 환경에서 디장고 개인 블로그 만들어보기 (3)

Django를 이용해 서버를 돌리고 사이트가 구동되는 것까지 확인했다. 이제는 보다 깊이 디장고의 구조에 대해 공부하고 이를 활용하여 유의미한 결과를 만들어보자. 단순히 사이트가 돌아가는 것에 그치는 게 아니라, 본래 목표한 목표에 걸맞게 '그럴듯한' 블로그의 모습을 만드는 것이다. 그러기 위해선 디장고의 구조를 알아야 한다. -장고는 기본적으로 '객체지향' 개념을 이용한다. 그리고 객체를 모델링하는 과정을 거친다. -속성은 객체 속성(properties), 행위는 메서드(methods)로 구현함. ex:) 포스팅/글 발행 = publish() -장고 내에서 생성한 모델들은 데이터베이스(sqlite3)에 저장된다. 스프레드시트의 구조처럼 열(필드)과 행(데이터)으로 구성된 것이 특징. 3. 블로그 어플리..

Backend-dev/Django 2022.01.14

[Python] Centos8 환경에서 디장고 개인 블로그 만들어보기 (2)

지난 번 1편에서 Centos8 환경 설정을 마쳤다. 디장고와 깃, atom 설치까지 마쳤으니 본격적으로 프로젝트를 시작해보자. 가상환경(hansv)은 활성화 된 상태여야 한다. 2. 프로젝트 생성 및 서버 구동 확인(사이트) django-admin.py은 스크립트로 디렉토리와 파일들을 생성한다. 첫번째 프로젝트를 생성해보자. 나의 첫 사이트 hansite. 마지막 점 .은 현재 디렉토리에 장고를 설치하라는 의미로 꼭 붙여줘야 한다. -설정 변경(hansite/settings.py) 1) 시간대 변경 : TIME_ZONE = 'Asia/Seoul' 2) 정적 파일 경로 바꾸기 : STATIC_URL 다음 줄에 STATIC_ROOT = os.path.join(BASE_DIR, 'static') 추가 3) ..

Backend-dev/Django 2022.01.14

[Python] Centos8 환경에서 디장고 개인 블로그 만들어보기 (1)

본인은 이전에 윈도우 환경에서 디장고를 통해 개인 블로그를 만들어 본 적이 있다. 하도 오래 전이라 흐릿한데다가, 과정을 그저 따라친 수준에 그쳐서 같은 과정을 다시 한번 복습해보기로 했다. 저번 학기 중에 배운 리눅스 Centos8 버전을 이용할 예정! Django는 파이썬으로 만들어진 웹 프레임워크이다. (오픈소스) 웹사이트를 구축할 때, 회원가입, 로그인, 로그아웃과 같이 비슷한 구성 요소가 필요한데 이를 해결해 주는 프레임워크 중 하나인 것이다. *urlresolver : URL을 패턴 목록과 대조/비교하여 요청을 식별. 만약 일치하는 패턴이있으면, 장고는 해당 요청을 관련된 함수(view)에 넘겨줌 (집배원 역할) 이후 작업은 view 함수에서 처리. 1. virtualenv 환경 설정 및 Dj..

Backend-dev/Django 2022.01.13