쪽지발송 성공
Click here
재능넷 이용방법
재능넷 이용방법 동영상편
가입인사 이벤트
판매 수수료 안내
안전거래 TIP
재능인 인증서 발급안내

🌲 지식인의 숲 🌲

🌳 디자인
🌳 음악/영상
🌳 문서작성
🌳 번역/외국어
🌳 프로그램개발
🌳 마케팅/비즈니스
🌳 생활서비스
🌳 철학
🌳 과학
🌳 수학
🌳 역사
해당 지식과 관련있는 인기재능

안녕하세요.2011년 개업하였고, 2013년 벤처 인증 받은 어플 개발 전문 업체입니다.50만 다운로드가 넘는 앱 2개를 직접 개발/운영 중이며,누구보...

 [프로젝트 가능 여부를 확인이 가장 우선입니다. 주문 전에 문의 해주세요] ※ 언어에 상관하지 마시고 일단 문의하여주세요!※ 절대 비...

------------------------------------만들고 싶어하는 앱을 제작해드립니다.------------------------------------1. 안드로이드 ( 자바 )* 블루...

 운영하는 사이트 주소가 있다면 사이트를 안드로이드 앱으로 만들어 드립니다.기본 5000원은 아무런 기능이 없고 단순히 html 페이지를 로딩...

Laravel Passport를 이용한 API 인증 구현

2024-10-05 12:07:33

재능넷
조회수 87 댓글수 0

Laravel Passport로 API 인증 구현하기 🔐

 

 

안녕하세요, 개발자 여러분! 오늘은 Laravel Passport를 이용해서 API 인증을 구현하는 방법에 대해 알아볼 거예요. 😎 API 인증이라고 하면 좀 어렵게 들릴 수 있지만, 걱정 마세요! 제가 쉽고 재미있게 설명해드릴게요. ㅋㅋㅋ

먼저, API 인증이 뭔지 간단히 설명하자면, 우리가 만든 API를 허가받은 사용자만 사용할 수 있도록 하는 방법이에요. 마치 비밀 클럽에 들어갈 때 비밀번호를 말해야 하는 것처럼요! 🕵️‍♂️

Laravel Passport는 이런 API 인증을 쉽게 구현할 수 있도록 도와주는 Laravel의 공식 패키지예요. 이걸 사용하면 복잡한 OAuth2 인증을 손쉽게 구현할 수 있답니다!

자, 그럼 이제 본격적으로 Laravel Passport를 사용해서 API 인증을 구현하는 방법을 알아볼까요? 준비되셨나요? 레츠고! 🚀

1. Laravel Passport 설치하기 📦

먼저, Laravel Passport를 설치해야 해요. 터미널을 열고 프로젝트 디렉토리로 이동한 다음, 다음 명령어를 실행해주세요:

composer require laravel/passport

이 명령어를 실행하면 Composer가 Laravel Passport와 필요한 의존성들을 설치해줄 거예요. 설치가 완료되면 다음 단계로 넘어갈 수 있어요!

설치가 끝났다면, 이제 데이터베이스 마이그레이션을 실행해야 해요. Passport는 토큰을 저장하기 위한 테이블들을 생성해야 하거든요. 다음 명령어를 실행해주세요:

php artisan migrate

이 명령어를 실행하면 필요한 테이블들이 데이터베이스에 생성될 거예요. 마치 마법처럼요! ✨

그 다음, Passport를 초기화해야 해요. 다음 명령어를 실행해주세요:

php artisan passport:install

이 명령어는 암호화 키를 생성하고, 클라이언트 접근 토큰을 생성하는 데 필요한 개인 키와 공개 키를 만들어줘요. 마치 비밀 요원이 암호를 만드는 것처럼요! 🕵️‍♀️

여기까지 하면 Laravel Passport의 기본적인 설치가 완료됐어요. 이제 우리의 애플리케이션에 Passport를 통합할 준비가 됐답니다!

참고: Laravel Passport를 설치하고 나면, 여러분의 프로젝트에 새로운 기능들이 추가돼요. 마치 슈퍼히어로가 새로운 능력을 얻은 것처럼요! 🦸‍♂️ 이제 여러분은 OAuth2 인증을 쉽게 구현할 수 있게 됐답니다.

자, 이제 기본적인 설치는 끝났어요. 다음 단계로 넘어가볼까요? 😉

2. Passport 설정하기 ⚙️

이제 우리의 Laravel 애플리케이션에 Passport를 통합할 차례예요. 이 과정은 마치 퍼즐을 맞추는 것과 비슷해요. 각 조각을 올바른 위치에 놓아야 해요!

먼저, App\Models\User 모델에 Laravel\Passport\HasApiTokens 트레이트를 추가해야 해요. 이렇게 하면 우리의 User 모델이 API 토큰을 사용할 수 있게 돼요.

User 모델 파일을 열고 다음과 같이 수정해주세요:


use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // ...
}

이렇게 하면 User 모델이 API 토큰을 사용할 수 있는 슈퍼파워를 얻게 돼요! 🦸‍♀️

다음으로, App\Providers\AuthServiceProvider 클래스에 Passport 라우트를 등록해야 해요. 이 파일을 열고 boot 메소드에 다음 코드를 추가해주세요:


use Laravel\Passport\Passport;

public function boot()
{
    $this->registerPolicies();

    Passport::routes();
}

이렇게 하면 Passport가 필요한 라우트들을 자동으로 등록해줘요. 마치 마법사가 주문을 외우는 것처럼요! 🧙‍♂️

마지막으로, config/auth.php 파일에서 API 가드의 드라이버를 passport로 변경해야 해요. 이 파일을 열고 다음과 같이 수정해주세요:


'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

이렇게 하면 API 인증에 Passport를 사용하도록 설정이 완료돼요!

팁: 이 설정 과정은 마치 레고 블록을 조립하는 것과 같아요. 각 부분을 올바르게 연결해야 전체 시스템이 제대로 작동하죠. 하나라도 빠뜨리면 안 돼요!

여기까지 하면 Laravel Passport의 기본 설정이 모두 완료됐어요. 이제 우리의 애플리케이션은 API 인증을 위한 준비가 끝났답니다! 🎉

다음 단계에서는 실제로 API 토큰을 발급하고 사용하는 방법에 대해 알아볼 거예요. 재능넷에서 API를 사용해 다양한 재능을 거래하는 것처럼, 우리도 이제 안전하게 API를 사용할 수 있게 될 거예요!

자, 이제 다음 단계로 넘어갈 준비가 됐나요? 계속해서 Laravel Passport의 세계로 더 깊이 들어가볼까요? 😊

3. API 토큰 발급하기 🎫

자, 이제 우리의 API에 접근하기 위한 토큰을 발급하는 방법에 대해 알아볼 거예요. 이 과정은 마치 놀이공원의 입장권을 발급받는 것과 비슷해요. 토큰이 있어야 API라는 놀이기구를 탈 수 있는 거죠! 🎢

Laravel Passport는 여러 가지 방식으로 토큰을 발급할 수 있어요. 오늘은 가장 흔히 사용되는 두 가지 방법에 대해 알아볼 거예요.

3.1 Password Grant Tokens

Password Grant Tokens는 사용자의 이메일과 비밀번호를 직접 사용해 토큰을 발급받는 방식이에요. 이 방식은 자체 모바일 앱이나 SPA(Single Page Application)에서 주로 사용돼요.

먼저, 클라이언트를 생성해야 해요. 다음 명령어를 실행해주세요:

php artisan passport:client --password

이 명령어를 실행하면 클라이언트 ID와 비밀 키가 생성돼요. 이건 마치 비밀 요원의 신분증을 만드는 것과 같아요! 🕵️‍♂️

이제 토큰을 발급받기 위한 라우트를 만들어볼까요? routes/api.php 파일에 다음 코드를 추가해주세요:


use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::post('/login', function (Request $request) {
    $credentials = $request->only('email', 'password');

    if (auth()->attempt($credentials)) {
        $user = auth()->user();
        $token = $user->createToken('MyApp')->accessToken;
        return response()->json(['token' => $token], 200);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});

이 코드는 사용자의 이메일과 비밀번호를 확인하고, 인증이 성공하면 토큰을 발급해줘요. 마치 놀이공원 입구에서 티켓을 확인하고 입장 팔찌를 채워주는 것과 같죠! 🎡

3.2 Personal Access Tokens

Personal Access Tokens는 사용자가 직접 생성하고 관리할 수 있는 토큰이에요. 이 방식은 개발자나 파워 유저들이 API를 테스트하거나 장기적으로 사용할 때 유용해요.

Personal Access Token을 생성하는 라우트를 만들어볼까요? routes/api.php 파일에 다음 코드를 추가해주세요:


Route::middleware('auth:api')->post('/token/create', function (Request $request) {
    $token = $request->user()->createToken($request->token_name);

    return ['token' => $token->plainTextToken];
});

이 코드는 인증된 사용자가 자신만의 Personal Access Token을 생성할 수 있게 해줘요. 마치 자신만의 특별한 VIP 패스를 만드는 것과 같죠! 🌟

주의: 토큰은 매우 중요한 정보예요. 절대로 다른 사람에게 공유하면 안 돼요! 토큰을 가진 사람은 여러분의 계정으로 API에 접근할 수 있으니까요. 마치 집 열쇠와 같다고 생각하면 돼요. 🔑

자, 이제 우리는 API 토큰을 발급하는 방법을 배웠어요. 이 토큰들은 마치 재능넷에서 거래를 할 때 사용하는 인증 수단과 비슷해요. 안전하고 신뢰할 수 있는 거래를 위해 꼭 필요한 요소죠!

다음 단계에서는 이렇게 발급받은 토큰을 사용해 실제로 API에 접근하는 방법에 대해 알아볼 거예요. 준비되셨나요? 계속 가보자고요! 💪

4. API 엔드포인트 보호하기 🛡️

자, 이제 우리는 토큰을 발급받았어요. 그럼 이 토큰을 어떻게 사용할까요? 바로 API 엔드포인트를 보호하는 데 사용할 거예요! 이건 마치 비밀 클럽의 문을 지키는 것과 같아요. 올바른 암호(토큰)를 가진 사람만 들어올 수 있죠! 🚪

Laravel에서는 미들웨어를 사용해 API 라우트를 보호할 수 있어요. Passport는 auth:api 미들웨어를 제공하는데, 이걸 사용하면 인증된 요청만 API에 접근할 수 있게 돼요.

예를 들어, 사용자의 프로필 정보를 반환하는 API 엔드포인트를 만들어볼까요? routes/api.php 파일에 다음 코드를 추가해주세요:


Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

이 코드는 /api/user 엔드포인트를 생성하고, auth:api 미들웨어로 보호해요. 이제 이 엔드포인트에 접근하려면 유효한 토큰이 필요해요!

그럼 이제 이 API를 어떻게 사용할 수 있을까요? 클라이언트 측에서는 HTTP 요청의 헤더에 토큰을 포함시켜 요청을 보내야 해요. 예를 들어, JavaScript를 사용한다면 다음과 같이 요청을 보낼 수 있어요:


fetch('http://your-app.com/api/user', {
  headers: {
    'Authorization': 'Bearer ' + accessToken
  }
})
.then(response => response.json())
.then(data => console.log(data));

여기서 accessToken은 우리가 이전 단계에서 발급받은 토큰이에요. 'Bearer '라는 접두사를 붙여야 한다는 점을 주의해주세요!

팁: API를 테스트할 때는 Postman 같은 도구를 사용하면 편리해요. Postman을 사용하면 다양한 HTTP 요청을 쉽게 보낼 수 있고, 헤더도 간단히 설정할 수 있답니다. 마치 슈퍼 개발자의 만능 도구 같은 거예요! 🦸‍♂️

이렇게 하면 우리의 API는 이제 안전하게 보호받고 있어요. 마치 재능넷에서 각 사용자의 개인 정보와 거래 내역을 안전하게 보호하는 것처럼요. 보안은 정말 중요하죠!

하지만 주의할 점이 있어요. 토큰은 매우 중요한 정보이기 때문에, 클라이언트 측에서 안전하게 저장해야 해요. 보통은 브라우저의 localStorage나 secureStorage에 저장하지만, 이것도 완벽하게 안전한 방법은 아니에요. 가능하다면 서버 측에서 세션을 관리하는 것이 더 안전할 수 있어요.

자, 이제 우리는 API를 안전하게 보호하는 방법을 배웠어요. 다음 단계에서는 토큰의 수명 주기와 관리에 대해 더 자세히 알아볼 거예요. API 보안의 세계는 정말 깊고 넓답니다! 계속 탐험해볼까요? 🚀

5. 토큰 관리하기 🔄

API 토큰을 발급하고 사용하는 방법을 배웠으니, 이제 이 토큰들을 어떻게 관리할지 알아볼 차례예요. 토큰 관리는 마치 집 열쇠를 관리하는 것과 비슷해요. 잘 간수해야 하고, 때로는 교체도 해야 하죠! 🔑

5.1 토큰 만료 설정

기본적으로 Passport의 액세스 토큰은 영원히 유효해요. 하지만 이건 보안상 좋지 않죠. 토큰의 수명을 제한하는 게 좋아요. AuthServiceProviderboot 메소드에 다음 코드를 추가해 토큰의 수명을 설정할 수 있어요:


use Laravel\Passport\Passport;

public function boot()
{
    $this->registerPolicies();

    Passport::routes();

    Passport::tokensExpireIn(now()->addDays(15));
    Passport::refreshTokensExpireIn(now()->addDays(30));
}

이 코드는 액세스 토큰의 유효 기간을 15일, 리프레시 토큰의 유효 기간을 30일로 설정해요. 마치 놀이공원 입장권의 유효 기간을 정하는 것과 같죠! ⏳

5.2 토큰 폐기

때로는 토큰을 무효화해야 할 때가 있어요. 예를 들어, 사용자가 로그아웃할 때 토큰을 폐기하고 싶을 수 있죠. 이럴 때는 다음과 같은 코드를 사용할 수 있어요:


Route::middleware('auth:api')->post('/logout', function (Request $request) {
    $request->user()->token()->revoke();
    return response()->json(['message' => 'Successfully logged out']);
});

이 코드는 현재 사용 중인 토큰을 폐기해요. 마치 놀이공원에서 나올 때 입장 팔찌를 반납하는 것과 같죠! 👋

5.3 토큰 갱신

토큰의 수명이 다 되었을 때, 사용자가 다시 로그인하지 않고도 새 토큰을 받을 수 있게 하고 싶다면 리프레시 토큰을 사용할 수 있어요. 리프레시 토큰을 사용해 새로운 액세스 토큰을 발급받는 엔드포인트를 만들어볼까요?


Route::post('/token/refresh', function (Request $request) {
    $request->validate([
        'refresh_token' => 'required'
    ]);

    $refresh_token = $request->refresh_token;

    try {
        $response = Http::asForm()->post('http://your-app.com/oauth/token', [
            'grant_type' => 'refresh_token',
            'refresh_token' => $refresh_token,
            'client_id' => config('services.passport.client_id'),
            'client_secret' => config('services.passport.client_secret'),
            'scope' => '',
        ]);

        return $response->json();
    } catch (\Exception $e) {
        return response()->json(['error' => 'Invalid refresh token'], 401);
    }
});

이 코드는 리프레시 토큰을 사용해 새로운 액세스 토큰을 발급받아요. 마치 오래된 열쇠를 새 열쇠로 교환하는 것과 같죠! 🔁

참고: 리프레시 토큰을 사용할 때는 보안에 특히 주의해야 해요. 리프레시 토큰이 노출되면 공격자가 계속해서 새로운 액세스 토큰을 발급받을 수 있기 때문이에요. 리프레시 토큰은 반드시 안전한 곳에 저장해야 해요!

토큰 관리는 API 보안의 핵심이에요. 적절한 토큰 수명 설정, 필요할 때 토큰 폐기, 그리고 안전한 토큰 갱신 과정을 통해 우리의 API를 더욱 안전하게 만들 수 있어요.

이렇게 토큰을 잘 관리하면, 재능넷에서처럼 사용자들이 안전하게 API를 이용할 수 있어요. 사용자의 개인 정보와 거래 내역을 보호하면서도, 편리한 서비스를 제공할 수 있는 거죠!

자, 이제 우리는 Laravel Passport를 사용해 안전하고 효율적인 API 인증 시스템을 구축하는 방법을 배웠어요. 하지만 API 보안의 세계는 여기서 끝이 아니에요. 더 많은 것들이 우리를 기다리고 있죠! 다음 섹션에서는 좀 더 고급 주제들에 대해 알아볼 거예요. 준비되셨나요? 😊

6. 고급 주제: Scope와 권한 관리 🔬

자, 이제 우리는 Laravel Passport의 기본적인 사용법을 마스터했어요. 하지만 API 세계는 더 깊고 넓답니다. 이번에는 좀 더 고급 주제인 Scope와 권한 관리에 대해 알아볼 거예요. 이건 마치 놀이공원의 VIP 패스 시스템을 만드는 것과 비슷해요! 🎟️

6.1 Scope 정의하기

Scope는 토큰이 할 수 있는 일을 제한하는 방법이에요. 예를 들어, 'read' 스코프를 가진 토큰은 데이터를 읽을 수만 있고, 'write' 스코프를 가진 토큰은 데이터를 쓸 수 있게 하는 식이죠.

Scope를 정의하려면 AuthServiceProviderboot 메소드에 다음과 같은 코드를 추가해요:


use Laravel\Passport\Passport;

public function boot()
{
    $this->registerPolicies();

    Passport::routes();

    Passport::tokensCan([
        'read-user' => 'Read user information',
        'update-user' => 'Update user information',
        'delete-user' => 'Delete user account',
    ]);
}

이렇게 하면 'read-user', 'update-user', 'delete-user'라는 세 가지 스코프를 정의할 수 있어요. 마치 놀이공원에서 각각 다른 권한을 가진 VIP 패스를 만드는 것과 같죠! 🎭

6.2 Scope 체크하기

Scope를 정의했다면, 이제 API 엔드포인트에서 이 Scope를 체크해야 해요. Laravel Passport는 이를 위한 편리한 미들웨어를 제공해요. 다음과 같이 사용할 수 있어요:


Route::get('/user', function (Request $request) {
    // ...
})->middleware(['auth:api', 'scope:read-user']);

Route::put('/user', function (Request $request) {
    // ...
})->middleware(['auth:api', 'scope:update-user']);

Route::delete('/user', function (Request $request) {
    // ...
})->middleware(['auth:api', 'scope:delete-user']);

이렇게 하면 각 엔드포인트는 해당 Scope를 가진 토큰만 접근할 수 있어요. 마치 특정 VIP 패스가 있어야만 특정 놀이기구를 탈 수 있는 것처럼요! 🎢

6.3 토큰 발급 시 Scope 지정하기

토큰을 발급할 때 Scope를 지정할 수도 있어요. 다음과 같이 할 수 있죠:


$token = $user->createToken('Token Name', ['read-user', 'update-user'])->accessToken;

이렇게 하면 'read-user'와 'update-user' Scope를 가진 토큰이 생성돼요. 이 토큰으로는 사용자 정보를 읽고 수정할 수 있지만, 삭제는 할 수 없어요. 마치 일부 놀이기구만 탈 수 있는 제한된 VIP 패스를 발급받는 것과 같죠! 🎫

팁: Scope를 잘 활용하면 API의 보안을 더욱 강화할 수 있어요. 각 클라이언트나 사용자에게 꼭 필요한 권한만 부여함으로써, 혹시 토큰이 노출되더라도 피해를 최소화할 수 있죠!

6.4 사용자 정의 권한 체크

때로는 Scope만으로는 부족할 때가 있어요. 더 세밀한 권한 체크가 필요할 수 있죠. 이럴 때는 Laravel의 Gate 기능을 활용할 수 있어요. 예를 들어:


Gate::define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

Route::put('/posts/{post}', function (Request $request, Post $post) {
    if (Gate::denies('update-post', $post)) {
        abort(403);
    }

    // 포스트 업데이트 로직
})->middleware('auth:api');

이 코드는 사용자가 자신의 포스트만 수정할 수 있도록 해요. 마치 놀이공원에서 자신의 사진이 찍힌 놀이기구 사진만 구매할 수 있는 것처럼요! 📸

이렇게 Scope와 사용자 정의 권한 체크를 조합하면, 매우 세밀하고 안전한 API를 만들 수 있어요. 재능넷에서 각 사용자가 자신의 재능 정보만 수정할 수 있고, 관리자만 모든 정보를 볼 수 있게 하는 것처럼 말이죠!

자, 이제 우리는 Laravel Passport를 사용해 정말 강력하고 유연한 API 인증 시스템을 구축하는 방법을 배웠어요. 기본적인 토큰 발급부터 Scope를 이용한 세밀한 권한 관리까지, API 보안의 다양한 측면을 다뤘죠.

이 지식을 바탕으로 여러분은 이제 재능넷과 같은 복잡한 플랫폼의 API도 안전하게 구현할 수 있을 거예요. 사용자의 개인 정보를 보호하면서도, 필요한 기능은 모두 제공하는 균형 잡힌 시스템을 만들 수 있죠.

API 보안의 세계는 정말 넓고 깊어요. 우리가 배운 것은 시작에 불과해요. 하지만 이 기초를 잘 다져놓으면, 앞으로 어떤 복잡한 API 시스템도 자신있게 구축할 수 있을 거예요!

자, 이제 여러분의 차례예요. 이 지식을 활용해 멋진 API를 만들어보세요. 안전하고 효율적인 API로 사용자들에게 최고의 경험을 선사하세요. 화이팅! 🚀👨‍💻👩‍💻

관련 키워드

  • Laravel
  • Passport
  • API
  • 인증
  • OAuth2
  • 토큰
  • Scope
  • 권한관리
  • 보안
  • RESTful

지식의 가치와 지적 재산권 보호

자유 결제 서비스

'지식인의 숲'은 "이용자 자유 결제 서비스"를 통해 지식의 가치를 공유합니다. 콘텐츠를 경험하신 후, 아래 안내에 따라 자유롭게 결제해 주세요.

자유 결제 : 국민은행 420401-04-167940 (주)재능넷
결제금액: 귀하가 받은 가치만큼 자유롭게 결정해 주세요
결제기간: 기한 없이 언제든 편한 시기에 결제 가능합니다

지적 재산권 보호 고지

  1. 저작권 및 소유권: 본 컨텐츠는 재능넷의 독점 AI 기술로 생성되었으며, 대한민국 저작권법 및 국제 저작권 협약에 의해 보호됩니다.
  2. AI 생성 컨텐츠의 법적 지위: 본 AI 생성 컨텐츠는 재능넷의 지적 창작물로 인정되며, 관련 법규에 따라 저작권 보호를 받습니다.
  3. 사용 제한: 재능넷의 명시적 서면 동의 없이 본 컨텐츠를 복제, 수정, 배포, 또는 상업적으로 활용하는 행위는 엄격히 금지됩니다.
  4. 데이터 수집 금지: 본 컨텐츠에 대한 무단 스크래핑, 크롤링, 및 자동화된 데이터 수집은 법적 제재의 대상이 됩니다.
  5. AI 학습 제한: 재능넷의 AI 생성 컨텐츠를 타 AI 모델 학습에 무단 사용하는 행위는 금지되며, 이는 지적 재산권 침해로 간주됩니다.

재능넷은 최신 AI 기술과 법률에 기반하여 자사의 지적 재산권을 적극적으로 보호하며,
무단 사용 및 침해 행위에 대해 법적 대응을 할 권리를 보유합니다.

© 2024 재능넷 | All rights reserved.

댓글 작성
0/2000

댓글 0개

해당 지식과 관련있는 인기재능

미국석사준비중인 학생입니다.안드로이드 난독화와 LTE관련 논문 작성하면서 기술적인것들 위주로 구현해보았고,보안기업 개발팀 인턴도 오랜시간 ...

IOS/Android/Win64/32(MFC)/MacOS 어플 제작해드립니다.제공된 앱의 화면은 아이폰,아이패드,안드로이드 모두  정확하게 일치합니...

웹 & 안드로이드 5년차입니다. 프로젝트 소스 + 프로젝트 소스 주석 +  퍼포먼스 설명 및 로직 설명 +  보이스톡 강의 + 실시간 피...

 주문전 꼭 쪽지로 문의메세지 주시면 감사하겠습니다.* Skills (order by experience desc)Platform : Android, Web, Hybrid(Cordova), Wind...

📚 생성된 총 지식 6,419 개

  • (주)재능넷 | 대표 : 강정수 | 경기도 수원시 영통구 봉영로 1612, 7층 710-09 호 (영통동) | 사업자등록번호 : 131-86-65451
    통신판매업신고 : 2018-수원영통-0307 | 직업정보제공사업 신고번호 : 중부청 2013-4호 | jaenung@jaenung.net

    (주)재능넷의 사전 서면 동의 없이 재능넷사이트의 일체의 정보, 콘텐츠 및 UI등을 상업적 목적으로 전재, 전송, 스크래핑 등 무단 사용할 수 없습니다.
    (주)재능넷은 통신판매중개자로서 재능넷의 거래당사자가 아니며, 판매자가 등록한 상품정보 및 거래에 대해 재능넷은 일체 책임을 지지 않습니다.

    Copyright © 2024 재능넷 Inc. All rights reserved.
ICT Innovation 대상
미래창조과학부장관 표창
서울특별시
공유기업 지정
한국데이터베이스진흥원
콘텐츠 제공서비스 품질인증
대한민국 중소 중견기업
혁신대상 중소기업청장상
인터넷에코어워드
일자리창출 분야 대상
웹어워드코리아
인터넷 서비스분야 우수상
정보통신산업진흥원장
정부유공 표창장
미래창조과학부
ICT지원사업 선정
기술혁신
벤처기업 확인
기술개발
기업부설 연구소 인정
마이크로소프트
BizsPark 스타트업
대한민국 미래경영대상
재능마켓 부문 수상
대한민국 중소기업인 대회
중소기업중앙회장 표창
국회 중소벤처기업위원회
위원장 표창