전체 글134 코딩 스타일 권장 가이드(2) foreach $value) { // foreach body} try.. catch do..while 2025. 2. 7. 코딩 스타일 권장 가이드 (1) PSR-1 - PHP 코딩 스타일 권장 가이드" data-og-description="# **1. Overview** - 파일은 태그 ` PHP 코드는 긴 태그 또는 짧은 에코 태그를 사용해야합니다 . 다른 태그 변형을 사용해서는 안됩니다. `` **…" data-og-host="wikidocs.net" data-og-source-url="https://wikidocs.net/43540" data-og-url="https://wikidocs.net/43540" data-og-image="https://blog.kakaocdn.net/dna/dox83G/hyYcbV7cIY/AAAAAAAAAAAAAAAAAAAAACRGX_QxnDqdT2mCLa-IcCWP9HPTjeSgNSgktHXJ_-H3/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1753973999&allow_ip=&allow_referer=&signature=3e9XaWKdIkeucX%2F38U1UMWV0pyI%3D 2025. 2. 7. 2주 남은 시점에서.. 학습시키고 그 모델을 서빙하는데 현재 고민이 되는 이슈- 딥시크 R1을 서빙하고 싶다. R1은 성능이 gpt보다도 좋은 것 같다. 데이터 학습도 필요가 없는 정도의 수준이지만, 모델 크기가 매우크다. 164개로 나눠진 safe tensor당 용량이 4-7기가 정도 되는데 못해도 600 - 800 기가 정도 되는 것 같다.- 그렇기 때문에 당연히 코랩이나 우리가 가진 GPU 서버에 올릴 수 조차 없다. 저장공간도 부족하지만, 램에 모델을 올리다 다운된다. - 그러면, 가능한 모델이 무엇이 있냐고 하면 R1의 라마 8b 증류모델이나 라마 8b - ko 모델인데, 성능은 당연히 전자가 좋다. - 데이터셋이 충분하지 않다. 정확히 말하면 언진재에서 가져온 데이터셋이 있기는 하지만, 토크나이징하는데 시간이 너무.. 2025. 2. 5. DeepSeek-R1 로드 import loggingfrom typing import Optional, Union, Dict, Any, Tuple# transformers 라이브러리에서 필요한 클래스와 함수를 불러옵니다.from transformers import ( AutoModel, # 사전 학습된 모델을 쉽게 불러올 수 있는 클래스 AutoTokenizer, # 사전 학습된 토크나이저를 쉽게 불러올 수 있는 클래스 AutoConfig, # 모델의 설정(config)을 불러오는 클래스 PreTrainedModel, # 사전 학습된 모델의 기본 클래스 PreTrainedTokenizer # 사전 학습된 토크나이저의 기본 클래스)# 로깅 설정: 현재 모듈 이름.. 2025. 2. 5. 디자인 패턴 1. 싱글턴- 한번 생성한 인스턴스를 전역적으로 공유한다.- 데이터베이스 연결에 자주 사용된다.- DB 연결을 한번만 생성하고 재사용하기 때문에 성능이 최적화된다는 장점이 있다. class Database{ private static $instance = null; private $connection; private function __construct(){ $this -> connection = new PDO("mysql:host=localhost;dbname=test", "user", "password"); } public static function getInstance(){ if(self::$instance === null){ sel.. 2025. 2. 4. PRG 패턴 1. PHP에서는 POST 요청 이후 새로고침이 된다. php에서 같은 파일에 post 요청을 처리하는 코드가 있을 때, 폼을 제출하면 페이지가 새로고침된다.왜냐하면- 사용자가 입력한 데이터를 폼을 통해 post로 보낸다.- php가 post 요청을 받아서 처리한다.- 브라우저는 응답을 받고 페이지를 다시 로드한다. 2. 문제점 : 새로고침하면 같은 post 요청이 다시 실행된다. 전송 예를 들어 이런 코드가 있다고 해보자. 데이터베이스에 어떤 데이터를 저장하는 코드다.이 코드는 잠재적인 문제가 있는데,- 사용자가 폼을 입력하고 전송버튼을 누르면 post 요청이 서버로 간다.- php가 데이터를 받아서 출력 ( 또는 저장 )- 이 상태에서 새로고침하면 이전 post 요청이 다시 실행된다. .. 2025. 1. 31. FILTER ! : 외부에서 온 데이터는 검증해야 한다. 1. PHP 필터 확장 Filter Extension 필터 확장은 외부 입력을 검증하고 불필요한 데이터를 제거하는 함수들을 포함하고 있다.filter_list()를 사용하면 php에서 제공하는 모든 필터를 확인할 수 있다. Filter Name Filter ID $filter) { echo "$filter" . filter_id($filter) . ""; } ?> 2. PHP에서 필터 확장을 사용해야 하는 이유 웹 어플리케이션에서는 다양한 외부 입력을 받게 된다. 예를 들어- 사용자 입력 (폼데이터)- 쿠키데이터- 웹서비스 데이터 (api응답)- 서버 변수 .. 2025. 1. 31. SQL 인젝션 방지, htmlspecialchars(), isset() 1. SQL 삽입공격이란? SQL 삽입 공격은 사용자가 입력한 데이터가 SQL 쿼리문제 직접 포함되면서 발생하는 보안 취약점이다.공격자가 악의적인 SQL 코드를 입력해서 db데이터를 조회하거나 삭제할 수 있다. SQL 삽입 공격에 취약한 코드 예시$name = $_GET['name']; // 사용자의 입력을 그대로 사용한다. 보안에 취약하다.$sql = "SELECT id, name, email FROM users WHERE name = '$name'";이러한 경우에 사용자가 만약에 ' OR '1'='1 을 입력했다. 그러면SELECT id, name, email FROM users WHERE name = '' OR '1'='1'뒤에 항상 참인 조건을 넣어서 users 테이블의 모든 데이터가 조회되게 된.. 2025. 1. 31. php 개발 시 참고사항 (3) - 연관배열 1. php에서의 배열 php에서의 배열은 2가지 형태를 가진다. 하나는 우리가 흔히 아는 숫자 인덱스 배열하나는 키를 가지는 연관배열이다. 다음은 그냥 배열을 생성하는 함수다. 일반배열도 만들 수 있고, 연관배열도 만들 수 있다. 배열을 생성하는 함수이지, 배열의 종류를 결정하지는 않는다.ex_arr = array(); // 숫자 인덱스 배열 (Indexed Array)$numbers = array(10, 20, 30);// 연관 배열 (Associative Array)$user = array("name" => "Alice", "age" => 25); 2. 차이점 배열타입설명예제숫자인덱스배열인덱스가 0,1,2... 숫자로 자동지정된다. $arr = array("Apple", "Banana", "Ch.. 2025. 1. 31. php 개발 시 참고사항 (2) * PHP 5.3.6 기준으로 작성함 1. mysql_fetch_assoc() * mysql_fetch_assoc()이란- MySQL에서 데이터를 연관배열 (associative array)로 가져오는 함수- SQL 결과셋에서 한행 row를 가져오고, 컬럼명을 키로 갖는 배열을 반환한다. * array()에 담으면 사실상 JSON 구조와 동일한가?- php에서 array()로 데이터를 담으면 key-value 형식이라 JSON과 유사하다.- json_encode()를 사용하면 실제로 JSON 형태로 변환가능하다. 2. MySQL에서 데이터를 조회하고, array()에 저장하는 코드- 아래의 코드는 MySQL에서 데이터를 조회한 후, mysql_fetch_assoc()을 사용해서 배열에 저장하는 방법.. 2025. 1. 31. 이전 1 2 3 4 5 6 7 8 ··· 14 다음