til 206

[TIL] ASP 쿼리/조건문

업무를 하다보니 옛날에 만들어둔 ASP로 만든 API를 수정해야 할 일이 생겼는데 해당 페이지를 개발한 개발자가 없어 내가 기능을 수정해야 했다... 필자는 파이썬 위주로 작업을 해왔고 기껏해야 한번씩 기능 수정으로 인한 자바를 사용해 봤지만 ASP는 당황스럽게도 한번도 해본적이 없어 어려움이 많았다 혹시나 필자와 같이 어려움을 겪고 있는 사람을 위해 빈약하지만 자료를 남겨보고자 한다. 우선 ASP의 조건문은 일반적인 프로그래밍 문법과 다른것이 익숙치 않아 생각보다 실수가 잦았다 if 조건 = 비교 then 조건 충족시 실행 elseif 조건 = 비교 then 두번째 조건 충족시 실행 else 조건 미충족시 실행 end if 위 코드와 같이 조건문의 비교연산자는 "==" 가 아닌 "=" 으로 사용하여야 ..

[IBM-Python] 파이썬 패키징 개념

해당 포스팅은 Coursera의 IBM - Developing AI Applications with Python and Flask 강의를 학습하며 배운것들을 요약 정리하였다. 파이썬 패키지를 참조하게 만들려면 __init__.py 를 추가해야 한다 단위 테스트 사례를 적용하기 위해서 접두사 'test'를 붙이면 단위 테스트 수행 함수로 식별 된다 PEP8 가이드라인에 따르면 메서드(method) 이름은 소문자와 밑줄로 구분하여 작명한다 파이썬 모듈은 __init__.py가 같은 디렉토리에 패키징 되어 있어야 한다 웹 앱과 API에 대한 설명 모든 웹 앱은 API이지만 모든 API가 웹 앱은 아니다 API와 달리 웹 앱은 사용자가 설치하지 않아도 사용이 가능하다 웹 앱은 CRUD 액션을 지원한다 PyLin..

기타/Python 2024.02.05

파이썬 - Poetry?

의존성 관리 도구는 공식적으로 지원하기도 하고 일반적으로 강의를 듣다보면 많이 사용하는 pip가 가장 익숙하기도 하고 이때까지 쓰는데 어려움이 없었기에 별다른 생각 없이 사용하고 있었지만 솔직히 사용하는 패키지 정보 기록과 가상환경 재설치가 너무 힘들기는 했다... 하지만, Poetry는 명령어를 통해 패키지를 설치하면 자동으로 기록해주며 재설치도 수월하다는 장점이 있어 나 스스로도 배우면서 많은 사람들에게 도움이 되었으면 하는 마음으로 부족한 정보를 정리해본다. 컴퓨터가 컨테이너라면 Poetry는 컨테이너 실려있는 "상자" 라고 생각하면 된다. 만약 우리가 상자 안에 있는 가위가 필요한데 단순히 컨테이너 문을 열어서 들어갔다고 상자 안에 들어있는 가위를 쓸 순 없을텐데 가위를 사용하려면 어떻게 해야할까..

기타/Python 2024.01.11

[TIL] 자료구조 - 좌측 회전

※ 좌측 회전 - 레드 블랙 트리에서는 좌측 회전을 하는 코드가 다음 예시와 같지만 parent 노드를 가리키는 포인터와 isLeftChild 변수를 추가로 사용해야 하기 때문에 이러한 부분들을 고려해야 한다 public void leftRotate (Node node){ Node temp = node.right; node.right = temp.left; if(node.right != null) { node.right.parent = null; node.right.isLeftChild = false; } if(node.parent == null) { root = temp; temp.parent = null; } else { temp.parent = node.parent; if(node.isLeftChi..

[TIL] 자료구조 - Rotate 메소드

※ Rotate 메소드 - 현재 노드와 부모 노드가 각각 우측 자식인지 좌측 자식인지에 따라 필요한 회전이 달라지는데 각각의 경우는 다음 코드 예시와 같다 public void rotate(Node node){ // 현재 노드가 좌측 자식 if(node.isLeftChild){ // 부모 노드가 좌측 자식 if(node.parent.isLeftChild) // 조부모 노드를 우측회전 rightRotate(node.parent.parent); node.black = false; node.parent.black = true; if(node.parent.right != null) node.parent.right.black = false; return; } // 부모 노드 우측 자식 // 조부모 노드 우측-좌측..

[TIL] 자료구조 - 색상 확인 메소드

※ 색상 확인 메소드 - 노드를 트리의 규칙에 맞게 추가한 뒤, 레드 블랙 트리의 6가지 규칙을 만족하는지를 확인해야 한다 public void checkColor(Node node){ // 루트는 항상 검은색이므로 색을 확인할 필요가 없다 if (node == root) return; // 빨간 노드 2개가 연속으로 나오는 경우 if (!node.black && !node.parent.black){ correctTree(node); // 부모 노드를 계속 확인한다 checkColor(node.parent); } public void correctTree(Node node){ // node의 부모 노드가 왼쪽 자식이면 이모 노드는 조부모 노드의 오른쪽 자식이다 if (node.parent.isLeftCh..

[TIL] 자료구조 - add 메소드

※ add 메소드 - add 메소드의 동작 방식은 AVL 트리와 유사하지만 isLeftChild가 추가가 되기 때문에 이 부분을 고려해 주어야 한다. add 메소드 코드의 예시는 다음과 같으며 트리가 비어있으면 노드를 추가하고 비어있지 않다면 재귀 add 메소드를 호출한다. public void add(K key, V value){ Node node = new Node(key, value); // 트리가 비어있을 경우 if (root == null) { root = node; root.black = true; size++; return; } // 트리에 노드가 있을 경우 재귀 메소드 사용 add(root, node); size++; } // add 재귀함수, 내부클래스 private void add (N..

[TIL] 자료구조 - 클래스

※ 클래스 - 레드 블랙 트리 클래스는 불리언 값을 가진 black이 참이면 검은색, 거짓이면 빨간색으로 표현하고 이모 노드를 알아내기 위해 left, right, parent 노드를 가리키는 포인터 뿐만 아니라 불리언 값을 가진 isLeftChild 를 사용하기도 한다. public class RedBlackTree implements RedBlackI { Node root; int size; class Node { K key; V value; Node left, right, parent; boolean isLeftChild, black; public Node (K key, V value) { this.key = key; this.value = value; left = right = parent = n..

[TIL] 자료구조 - 레드 블랙 트리

※ 레드 블랙 트리 - 1~10 까지의 숫자들을 레드 블랙 트리 규칙에 따라 배열하게 되면 다음과 같이 나타나게 된다. 1부터 숫자들을 하나씩 추가하며 규칙에 적합한지 확인하고 규칙을 위반할 시 회전과 색상 전환으로 규칙에 맞게 바꾸어 주면 된다. 해당하는 규칙은 이전 포스팅 글을 참고하여 연습해보는 것도 좋을 것임 레드 블랙 트리 규칙