전체 글
-
자바스크립트 thisJavaScript 2021. 12. 16. 16:16
자신이 속한 객체의 프로퍼티를 참조하려면 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야함 객체의 프로퍼티 : 객체 고유의 상태 데이터 객체의 메서드 : 객체 상태 데이터를 참조/조작하는 동작 const circle = { radius: 5, // 프로퍼티 getDiameter() { // 메서드 return 2 * circle.radius; // 이 메서드가 자신이 속한 객체의 프로퍼티나 다른 메서드를 참조하려면 // 자신이 속한 객체인 circle을 참조할 수 있어야 한다. } }; console.log(circle.getDiameter()); // 10 위와 같이 가능하지만(circle.radius를 참조) 자기 자신을 재귀적으로 참조하는 것은 좋지 않음, 위와 같은 방법은 직관적이고 편하지..
-
[책] 함께 자라기 - 1장Programming 2021. 12. 11. 08:30
1장 자라기 내가 알고 있는 것을 활용하기 - 많이 알기 / 알고 있는 것을 어떻게 활용하는지 알고 있는 것들을 잘 정리, 연결하기 나를 개선하기 나의 작업 -공부, 프로젝트 진행 나의 작업 자체 개선하기 나의 작업을 되돌아보는 회고.반성을 주기적으로 하는 프로세스 피드백을 자주 받기 피드백을 받으면 잘못된 것에 대한 수정을 할 수 있음 나의 작업에 대한 피드백을 받아서 나의 작업이 좋고/나쁨에 의한 개선이 가능 실력 개선 동기와 구체적이고 적절한 시기에 피드백 단순 반복은 실력이 향상되지 않음 작업 난이도 내 실력 작업 난이도 작업을 어렵게 하기 위해서 새로운 방법 적용(새로운 툴, 키보드만 사용하기 등등) 적절한 난..
-
[API] 2. RESTFUL API - RESPONSE STATUS CODE + 객체 활용 응답 처리(데코레이터, 클래스)HTTP 2021. 11. 1. 17:02
이전글 - 2020.11.01 - [Web/HTTP] - [API] 1. RESTful API란? 코드 status = { "OK": 200, # GET - DATA OR EMPTY LIST "CREATED": 201, # POST, "ACCEPTED": 202, # POST - ASYNC "NO CONTENT": 204, # DELETE, PUT "BAD REQUEST": 400, # GENERAIL FAIL - CLIENT ERROR "NO AUTH": 401, # LOGIN NEEDED "FORBIDDEN": 403, # ADMIN ONLY "NOT FOUND": 404, # NOT FOUND BY IDENTIFIER "SEVER ERROR": 500, # SEVER ERROR } message =..
-
[DATABASE] Raw SQL에서 ORM으로 바꾸자Database 2021. 11. 1. 16:27
1. 코드 비교 ### insert many # Raw SQL cur = conn.cursor() sql = "INSERT into action(name) values (%s)" cur.executemany(sql, (names)) conn.commit() # ORM actions = [ActionModel(name) for name in names] db.session.add_all(actions) db.session.commit() ### get # Raw SQL cur = conn.cursor() sql = "SELECT * FROM action" cur.execute(sql) conn.commit() # ORM action = ActionModel.query.all() ### Create # Ra..
-
[TEST] 2.테스트 코드 작성하기Python 2021. 10. 24. 23:57
이전 글 2021.10.23 - [개발 고민들] - [TEST] 1. 테스트를 시작하게 된 계기 코드 # tests/conftest.py @pytest.fixture def client(): app = create_app() app.config["TESTING"] = True app.testing = True with app.test_client() as client: app.config["SQLALCHEMY_DATABASE_URI"] = "db url" with app.app_context(): db.create_all() yield client db.session.rollback() db.session.close() # db.drop_all() # 모든 테스트에서 테이블 삭제로 인한 속도가 느려짐 #..
-
[TEST] 1. 테스트를 시작하게 된 계기Programming 2021. 10. 23. 00:19
다음 글 2021.10.24 - [개발 고민들] - [TEST] 2.테스트 코드 작성하기 최근 영어 구동사, 이디엄 검색 앱을 만들면서 반복적으로 발생했던 부분이 있다. 간단하게 말해보자면, 프론트단-서버단 사이 데이터 요청/응답을 더 효율적으로 하기 위해 서버에서 계산하는 로직, 응답으로 보내주는 리소스의 구조 등등이 계속 변경되었다. 구체적인 예를 들면, 프론트에서 서버로 데이터를 요청하고, 이에 해당하는 데이터를 응답으로 보내주는 과정에서 프론트에서 필요하지 않은 데이터는 보내지 않아야 하는데 처음엔 저장된 데이터(구동사 리스트+각 구동사의 정의,예제)가 많이 없어 다 같이 보내다가 데이터가 많아진 이후부터는 바꿔야겠다는 생각이 들었다. 최소한 필요한 정보(구동사 리스트)만 보내고 클라이언트에서 특..
-
객체 지향 프로그래밍 - 크롤러 개발Python 2021. 10. 12. 17:18
크롤러 개발 히스토리 1. 2019년 5월 하나의 특허 사이트에서 특허데이터들을 엑셀로 다운받는 크롤러를 개발(개인 프로젝트) 2. 2020년 4월 특정 아이템에 대해 여러 사이트에서 아이템들에 대한 데이터들을 수집하는 크롤러 개발 3. 2020년 8월 여러 뉴스 사이트에서 뉴스 기사들을 수집하는 크롤러 개발 4. 2021년 10월 여러 영어 사전 사이트에서 영어 구어체의 정의와 예제를 수집하는 크롤러 개발 1번 크롤러 2,3,4 크롤러와 다른 점은 하나의 사이트에서만 데이터를 수집했었다. 개발을 막 시작했던 당시에 개발했고, 클래스가 아닌 함수로 하나의 파이썬 파일에 다 적었다. 리팩토링 변수 -> title -> t, abstract -> abs 등과 같이 짧게 네이밍 했던 부분 고침 데이터 구조 -..
-
JS - GOOD/BAD CODEJavaScript 2021. 7. 18. 10:22
const/let const 는 재할당이 불가능하기에 다른 개발자나 이후 본인이 다시 코드를 볼때 변수 선언 후 변경이 생기지 않는 다는 것을 확신할 수 있기 때문에 값을 변경하는 경우가 아니라면 무조건 const 를 사용해라(배열, 객체의 경우 배열 항목, 객체 키,값은 변경할 수 있음) 배열 메서드 활용 // 배열의 경우 빈 배열로 선언하여 loop 하는 것보다 filter 등 배열 메서드를 활용해라 // 배열 내의 일정 조건으로 다시 배열을 만들때 const items = [ { name: "car", active: true, }, { name: "bus", active: false, }, ]; // Bad const activeItems_ = []; for (let i = 0; i < items...