목록분류 전체보기 (408)
오답노트
퍼셉트론이란 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력. 다만 퍼셉트론의 신호는 1 또는 0의 두 가지 값을 갖는다. 입력으로 2개의 신호를 받는 퍼셉트론이다. x1 과 x2 는 입력 신호 y는 출력 신호, w1,w2는 가중치다. 원을 뉴런 혹은 노드라고 부르고 입력 신호가 뉴런에 보내질 때, 각각 고유한 가중치가 곱해진다. 뉴런에서 보내온 신호의 총합이 정해진 임계값를 넘어 설 때만 1을 출력한다. 이를 뉴런이 활성화한다고 표현한다. 임계값은 θ(세타,theta)로 표현한다. 수직은 아래와 같다. 퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치를 부여한다. 가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용한다. 즉 가중치가 클수록 해당 신호가 중요하다! 단순한 논리 회로 ..
본 포스트를 쓰는 시점에서 모든 빅 프로젝트관련 활동은 끝났고 이력서, 자기소개서, 면접 준비와 같은 취업준비에 대한 활동들만 남은 상태다. 에이블 스쿨에 들어오기 전 많은 것들을 놓고 들어왔다. 직업, 경력, 심지어 사람 마저도 마지막 대단원만 남았다 생각했을 땐, 가슴이 뭉클했으나 곧 쉼 없이 달려야한다는 의미와 같았다. 빅 프로젝트에서 크게 하는 활동들과 아쉬웠던 점을 중심으로 설명해본다. 워크샵 KT가 대기업이다 보니 보안에 민감한 편이다. 그래서 워크샵 이름도 단톡방에서 오르고 내렸을 때, KT 내부에서는 나름 껄끄러웠다는 카더라 통신이 에이블러 사이에서도 돌기도 했다. 그래서 나도 조심스레 그냥 워크샵이라고 칭하겠다. 워크샵은 총 3일동안 진행됐다. 첫째날은 조원들이 각자 작성해서 가져온 제안..
미니프로젝트 6차 AI 허브 등 미리 어노테이션 되어있는 데이터를 가지고 Yolo를 학습시키는 방법들을 배웠고, 이를 토대로 간단한 CV 서비스를 구상하여 구현해봤다. 생각보다 어노테이션 데이터셋의 크기가 커서 로컬 환경에서는 무리가 있었다. 공모전에도 느낀거지만 학습 환경이 너무 중요하다. IT인프라/ 가상화 네트워크 AWS를 위해 리눅스를 배우고 AWS에서 아주 기본적인 서버를 할당 받는 방법과 k8s와 도커등을 배웠다. 개념적으로는 수업을 들을 때 이해가 됐지만, 막상 무엇을 어떻게 해야할지 감이 잘 오지 않는다. 리눅스는 나중에 실무에서 꼭 필요한 경험이라고 생각되어 열심히 들었지만 아직도 윈도우가 편한건 어쩔 수 없나보다. 웹프로그래밍 JS의 기초를 배우는데 내가 알던 프로그래밍 언어의 틀을 많..
개요 개요 빅프로젝트를 위해서 네이버 카페 크롤링을 해야하는 상황이 생겼다. 그런데 하는 과정에서 어떻게 해야될지 조금 헤맸는데, 정리 해놓으면 좋을거 같아서 정리한다. 카페 접속 링크 크롤링 우선 네이버에서 VIEW 탭에 카페로 필터링한 결과이다. 해당 페이지는 스크롤을 내리면 10개씩 검색 결과를 추가로 가져온다. 개발자 도구에서 스크롤을 내렸을 때 보내는 요청을 확인해 봤다. 위 사진은 스크롤 했을 때만 필터링하여 받아온 데이터를 확인한 것이다. 보아하니 js로 함수를 만들어 놓고 스크롤을 내릴 때 함수를 호출해서 정보를 가져오는 것 같다. 이렇게 받아온 정보들에서 페이지에 출력된 카페들의 접속 url을 크롤링했다. 카페 게시글 크롤링 다음은 url에 접속하여 카페 내부의 게시글 내용을 크롤링해야한..
Media File Media File 은 유저가 업로드하는 정적 파일을 의미한다. Media File은 서비스를 해야지 유저가 업로드하므로 Static File 처럼 서비스 시, 개발 시를 구분하여 file을 생각할 필요는 없다. 유저가 업로드 했을때 Media File을 업로드 했을 때 Medai File이 저장될 위치만 지정하면된다. settings.py 에서 다음과 같이 정의하자. MEDIA_URL은 url로 접속할 때 사용하고, MEDIA_ROOT는 url로 접속했을 때 찾아가는 디렉토리이다. 하지만 개발할 때에는 위 경로를 자동으로 찾아가지 않는다. 그래서 아래와 같은 코드를 추가해서 개발할 때에도 찾아갈 수 있도록 해줘야한다. 아래 코드는 절대 앱의 urls.py가 아닌 프로젝트의 urls...
Static File static file은 정적인 자료를 의미하는데 HTML, CSS, JS, Django Template, Image 등을 의미한다. static file 위치는 앱 폴더 아래 static 폴더 또는 settings.py에 STATICFILES_DIRS에 지정한 곳 있다. https://docs.djangoproject.com/en/3.2/howto/static-files/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com settings.py 에 STATICFILES_DIRS 변수가 없을 경우 위 경로를 참고하여 아래처럼 지정하도록 하자. 또 개발이 완료되고 서비스할 때, 위에서 설명한..
기본 View 이전 포스트에서 사용하던 View 형태는 함수 기반의 View를 만들었다. 또 Class 기반의 View도 작성할 수 있는데 아래에서 확인 해보자. views.py 에는 다음과 같이 Class 기반 View를 선언했다. urls.py 에는 다음과 같이 위 View를 호출하도록 한다. 보통 함수 기반 View에서 호줄하지 않는 as_view를 호출한다. as_view는 뭘까? 우선 class 기반 view가 View 클래스를 상속 받는 것을 알아야한다. get은 View 클래스에 있는 메소드로 GET요청이 있을 때 실행되는 함수이다. as_view또한 View 클래스 안에 선언되어 있는 메소드이다. https://ccbv.co.uk/projects/Django/4.1/django.views...
GET 과 POST HTML에서 요청을 하는 방식중에 GET 과 POST 라는 것들이 존재한다. 나중에 REST를 참고하여 공부해보자. GET은 요청정보 헤더에 담겨 전달되는 방식이다. 따라서 전달하려는 정보다 노출이 되고, 길이에도 제한이 있다. POST는 요청정보 바디에 담겨 전달되는 방식이다. 따라서 전달하려는 정보를 은폐할 수 있고, 길이 제한도 없다. 위에서 비교를 보면 POST가 더 좋아보이지만, GET은 정보를 조회할 때, POST는 정보를 생성할 때 자주 사용된다.(예외도 물론 존재함) CSRF (Cross-Site Request Forgery) 예전에는 GET방식으로 로그인도 하고 그래서 개인정보 유출이나 이런 것들이 취약했다고 한다. 그래서 POST 방법으로 로그인과 같은 민감한 정보들..
Manager Manager는 기본적으로 models.py 내 선언한 클래스는 objects로 사용 가능하다. 하지만 모종의 이유로 할당 받아 사용 할 경우 Manager로 할당하여 사용할 수 있다. 이 때, objects는 사용할 수 없다. test_manager = models.Manager() 위 코드를 models.py의 (models.Model 상속 받은)클래스 내에서 선언하면 test_manager는 objects 처럼 사용 할 수 있다. (단, 기존 object는 사용 불가능) QuerySet 위에서 설명한 Manager는 QuerySet이라는 객체다. 이는 메소드를 통해 테이블의 내용을 조회하거나 추가, 수정, 삭제가 가능하다. 기능만 확인하기 위해 웹페이지에 출력하지 않고 장고 쉘을 이용..
1:1 관계 1:1 관계는 두 테이블의 row가 서로 1:1 관계를 의미한다. 이러한 관계가 되도록 model을 작성해보자. Test2라는 모델을 생성했다. test는 외래키로 Test 모델과 1:1관계를 나타내고 있다. ForeignKey로 다른 모델과 1:1 관계를 만들 수 있다. 이때 on_delete 관계는 참조하는 인스턴스가 삭제 되었을 때 처리방식을 지정한다. 위 화면은 Test2에서 데이터를 추가할 때, Test의 정보를 가지고 1:1 관계를 형성해 추가한다. M:N 관계 다대다 관계를 갖는 모델을 만들 수 있다 ManyToManyField 로 다대다 관계를 갖을 모델을 선택하면 서로 다대다 관계를 갖게된다. 참고로 아래는 다대다 관계를 갖는 모델이다. 1:M 관계 1:M 관계는 위 관계들과..