โ์ทจํฅ์ ๊ณต์ ํ๊ณ , ๋ฐ์ด๋ธ๋ฅผ ์ฐ๊ฒฐํ๋คโ
- ์ทจํฅ ๊ธฐ๋ฐ ์์ ๋งค์นญ ํ๋ซํผ VibeSync
- VibeSync๋ ์ํ, ๋๋ผ๋ง, ์์ , ์ ๋๋ฉ์ด์ ๋ฑ ๋ค์ํ ์ฝํ ์ธ ์ ๋ํ ์ทจํฅ์ ์ค์ฌ์ผ๋ก ์ฌ๋๋ค์ ์ฐ๊ฒฐํ๋ ์๋ก์ด ํํ์ ์์ ํ๋ซํผ์ ๋๋ค.
- ์ฝํ ์ธ ๋ฆฌ๋ทฐ ๋ฐ ๊ฐ์ ํ๊น , ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๊ฒฝํ ๊ณต์ , ์ทจํฅ ๊ธฐ๋ฐ ์น๊ตฌ ๋งค์นญ ๋ฑ ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์์๊ฒ ๊น์ด ์๋ ์ํต๊ณผ ์ฐ๊ฒฐ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- SNS๋ ์์ ์ฐ๊ฒฐ(ํ๋ก์, ์น๊ตฌ ์)์ ์ง์ค๋์ด ์์ด, ์ ์ฌํ ์ทจํฅ ๊ธฐ๋ฐ์ ๊น์ด ์๋ ์ํต์ด ๋ถ์กฑํฉ๋๋ค.
- ์ฌ์ฉ์๋ง๋ค ์ ํธํ๋ ๋ฏธ๋์ด(์ํ, ๋๋ผ๋ง, ์์ , ์ ๋ ๋ฑ)์ ๋ํ ๊ฒฝํ์ ๊ณต์ ํ ๊ณต๊ฐ์ด ์ ํ์ ์ด๋ฉฐ, ํจ๊ป ์ค์๊ฐ ์์ฒญํ ํ๋ซํผ์ด ๋ถ์ฐ๋์ด ์์ต๋๋ค.
- ์ทจํฅ ๊ธฐ๋ฐ ๋งค์นญ: ์ฌ์ฉ์์ ๋ฆฌ๋ทฐ, ์ข์์, ์คํฌ๋ฉ ํฌ์คํธ ๋ฑ์ ๋ถ์ํด ๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ๊ฐ์ง ์ฌ์ฉ์ ๊ฐ ์ถ์ฒ ๋ฐ ๋งค์นญ์ ์ ๊ณตํฉ๋๋ค.
- ์ค์๊ฐ ์์นํํฐ ๊ธฐ๋ฅ: ๋๊ธฐํ๋ ์คํธ๋ฆฌ๋ฐ ์์ฒญ ๊ฒฝํ๊ณผ ์ฑํ ยท์ด๋ชจํฐ์ฝ ๋ฐ์์ ํตํด ๋ฌผ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋ฅผ ๋์ด์ ๋ผ์ด๋ธ ์ปค๋ฎค๋์ผ์ด์ ์ ์ง์ํฉ๋๋ค.
- ๊ฐ์ธ ์ํฌ์คํ์ด์ค: ์ผ์ ๊ด๋ฆฌ, ํฌ์คํธ(๋ฆฌ์คํธ) ์ปฌ๋ ์ , ๋ฉ๋ชจ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ์ธํ๋ ํ์ ๊ณผ์ ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ํฌ์คํ์ด์ค๋ ์ฌ์ฉ์๋ณ๋ก ๋ ๋ฆฝ ์ด์๋ฉ๋๋ค.
- ๋ค๋ชฉ์ ํ์ฉ: SNS ์์ ์ฉ๋๋ฟ๋ง ์๋๋ผ ๊ฐ์ธ ์ ๋ฌด ๊ด๋ฆฌ, ๊ธฐ์ ๋ง์ผํ ์บ ํ์ธ ๋ฑ ๋ค์ํ ๋ชฉ์ ์ ๋ง์ถ ์ ์ฐํ ํ๋ซํผ ํ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋ค๊ตญ์ด ์ง์ & ๋ฐ์ํ UI/UX: ๊ธฐ๋ณธ ์์ด UI์ ํ๊ตญ์ด๋ฅผ ์ถ๊ฐ ์ง์ํ๊ณ , PCยท๋ชจ๋ฐ์ผ ์ผ๊ด๋ ๊ฒฝํ์ ๋ณด์ฅํ๋ ๋ฐ์ํ ๋์์ธ์ ์ ์ฉํฉ๋๋ค.
- ์ฃผ๊ฐ ํ์ฑ ์ฌ์ฉ์(WAU)
- ์์นํํฐ ์ฐธ์ฌ ํ์ ๋ฐ ํ๊ท ์์ฒญ ์ง์ ์๊ฐ
| ์๋น์ค๋ช | ์ฃผ์๊ธฐ๋ฅ | ๊ฐ์ | ํ๊ณ์ |
|---|---|---|---|
| Notion | ๊ฐ์ธ ์ํฌ์คํ์ด์ค, ํ์ ๋ฌธ์ | ์ ์ฐํ ์ปค์คํฐ๋ง์ด์ง, ์ฝ๊ฒ ์กฐ์งํ | ๋ฏธ๋์ด ๋ฆฌ๋ทฐยท์คํธ๋ฆฌ๋ฐ ํตํฉ ๊ธฐ๋ฅ ๋ถ์กฑ |
| ํผ๋, ์คํ ๋ฆฌ, DM, ํด์ํ๊ทธ ๊ธฐ๋ฐ ํ์ | ๋ฐฉ๋ํ ์ฌ์ฉ์ํ, ์ฌ์ด ์ฝํ ์ธ ๊ณต์ | ์ค์๊ฐ ๋์ ์์ฒญ, ์ทจํฅ ํ๊น ๊ธฐ๋ฅ ๋ถ์ฌ | |
| Teleparty | ๋๊ธฐํ ์คํธ๋ฆฌ๋ฐ, ์ฑํ ยท์ด๋ชจํฐ์ฝ ๋ฐ์ | ๋ค์ํ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ ์ง์ | ๋ณ๋ ๋ธ๋ผ์ฐ์ ํ์ฅ ์ค์น ํ์, SNS ๊ธฐ๋ฅ ๋ฏธํก |
- ์์คํฑ ํ๋ซํผ์ผ๋ก์ ๋ฆฌ๋ทฐยท๋งค์นญยท์คํธ๋ฆฌ๋ฐยท์ํฌ์คํ์ด์ค๋ฅผ ํตํฉ ์ ๊ณต
- ํ๋ฌ๊ทธ์ธ ๋ถํ์: ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณ๋ ์ค์น ์์ด ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅ
- ๊ฐ์ ํ๊ทธยท๋ถ์์ ํตํ ์ธ๋ถํ๋ ์ถ์ฒ ๊ฒฝํ ํ์
- ์ฑํ ๊ธฐ๋ฐ ์ปค๋ฎค๋ํฐ: ์ค์๊ฐ ํ ์คํธยท์ด๋ชจํฐ์ฝ ์ํต ๊ธฐ๋ฅ ๊ฐํ ํ์
- Vibe(๊ฐ์ฑ, ํ์ฅ)์ Sync(๋๊ธฐํ)์ ๊ฒฐํฉ์ผ๋ก, ์ฌ์ฉ์ ๊ฐ์ ๊ฐ์ฑ๊ณผ ๊ฒฝํ์ ์ฐ๊ฒฐํ๋ค๋ ์๋ฏธ๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
- ์ธ๊ฐ ์ํ: ๊ธ๋ก๋ฒ ์ปค๋ฎค๋ํฐ์ ํ์ฅ์ฑ๊ณผ ๋๊น ์๋ ์ฐ๊ฒฐ์ ์์ง
- ์ค์ ์ฌ์ด๋ ์จ์ด๋ธ ๊ทธ๋ํฝ: ์ค์๊ฐ ๊ฒฝํ ๊ณต์ , ๊ฐ์ ์ ํ๋(๋ฐ์ด๋ธ)์ ์๊ฐํ
- ๋ณด๋ผโํ๋โ์ด๋ก ๊ทธ๋ผ๋ฐ์ด์ : ๋ค์ํ ์ทจํฅ๊ณผ ๊ฐ์ ์คํํธ๋ผ์ ํํ
| ๊นํ์ @jejuKIM99 Team Leader Planning/Management UI/UX Design FE/BE Development |
์์ฌ์
@ungs1026 Lead Developer Overall FE/BE Development |
๊น๋ฏผ์ @msgggg1 | ๊น์์ง @Yeji-Kim-Erica |
- Index Page์ ์ต์ด ๋ก๋ ๋ชจ์ต์
๋๋ค. ํด๋น ํ์ด์ง๋ ํ์ด์ง ์ด๊ธฐ ๋ก๋์ ๋ํ๋๋ฉฐ, ๊ฐ๋จํ ์ ๋๋ฉ์ด์
(ํ์ดํ, ๋ณ๋ฅ๋ณ)์ ํฌํจํ๊ณ ์์ต๋๋ค.
- ์ฐ์ธก ํ๋จ ์ธ์ด ๋ฒ๊ฒฝ ๊ธฐ๋ฅ์ ํตํด ํ์ด์ง ๋ด ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ๊ฐ๋ฅ ์ธ์ด๋ ์์ด/ํ๊ตญ์ด ์ ๋๋ค.
- ๋ฒ์ญ์ ๋ฐ์ดํฐ๋ฅผ js๋ก ์์ฑํ๊ณ ์ ํ์ ๋ง๊ฒ ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ ํํ ์
๋๋ค.
<์์>
<section id="section2">
<div class="content">
<p class="Purpose_p" data-key="about.title">About VibeSync</p>
.
.
.
</div>
</section>
.
.
.
<!-- ์ธ์ด ์ ํ ๋๋กญ๋ค์ด -->
<select id="language-select">
<option value="en">English</option>
<option value="ko">ํ๊ตญ์ด</option>
</select> // ๋ฒ์ญ ๋ฐ์ดํฐ
const translations = {
en: {
"data-key_name": "contents",
"data-key_name": "contents",
.
.
.
},
ko: {
"data-key_name": "contents",
"data-key_name": "contents",
.
.
.
}
}- Login Page์ ๋๋ค. Index Page์ nav ์ฐ์ธก Get Start๋ฒํผ์ ๋๋ฌ ์ง์ ํฉ๋๋ค.
- ๋ฐ์ํ์ผ๋ก ๋์์ธ ๋์์ผ๋ฉฐ, ํ ํ์ด์ง์์ ํผ ์์ ์ ํ์ผ๋ก ๋ก๊ทธ์ธ/ํ์๊ฐ์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ ํจํด์ด ์ ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ํจํด์ ๋ง๋ ์
๋ ฅ์ ์ ๋ํฉ๋๋ค.
<์์>
<label for="userPw" class="sr-only">๋น๋ฐ๋ฒํธ</label> <input type="password" id="userPw" name="userPw" placeholder="Password" required pattern="^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$" title="8์ ์ด์, ์๋ฌธ์, ์ซ์, ํน์๋ฌธ์๋ฅผ ๋ชจ๋ ํฌํจํด์ผ ํฉ๋๋ค."> // ํ์๊ฐ์
ํผ ๋ณด์ฌ์ฃผ๊ธฐ
function showSignupForm() {
// .length๋ฅผ ํ์ธํ์ฌ ์์ ์กด์ฌ ์ฌ๋ถ ์ฒดํฌ
if ($loginFormContainer.length && $signupFormContainer.length && $switchFormLinkContainer.length) {
$loginFormContainer.hide(); // ๋ก๊ทธ์ธ ํผ ์จ๊ธฐ๊ธฐ
$signupFormContainer.css('display', 'flex'); // ํ์๊ฐ์
ํผ ๋ณด์ด๊ธฐ
$switchFormLinkContainer.hide(); // '์์ง ํ์์ด ์๋์ ๊ฐ์?' ๋งํฌ ์จ๊ธฐ๊ธฐ
}
}
// ๋ก๊ทธ์ธ ํผ ๋ณด์ฌ์ฃผ๊ธฐ
function showLoginForm() {
if ($loginFormContainer.length && $signupFormContainer.length && $switchFormLinkContainer.length) {
$loginFormContainer.css('display', 'flex'); // ๋ก๊ทธ์ธ ํผ ๋ณด์ด๊ธฐ
$signupFormContainer.hide(); // ํ์๊ฐ์
ํผ ์จ๊ธฐ๊ธฐ
$switchFormLinkContainer.show(); // '์์ง ํ์์ด ์๋์ ๊ฐ์?' ๋งํฌ ๋ณด์ด๊ธฐ (๊ธฐ๋ณธ display block)
}
}
// 'ํ์๊ฐ์
' ๋งํฌ ํด๋ฆญ ์ด๋ฒคํธ (.on() ์ฌ์ฉ)
if ($switchToSignupLink.length) {
$switchToSignupLink.on('click', function(event) {
event.preventDefault(); // ๋งํฌ ๊ธฐ๋ณธ ๋์ ์ค๋จ
showSignupForm();
});
}
// '๋ก๊ทธ์ธ' ๋งํฌ(ํ์๊ฐ์
ํผ ๋ด๋ถ) ํด๋ฆญ ์ด๋ฒคํธ
if ($switchToLoginLink.length) {
$switchToLoginLink.on('click', function(event) {
event.preventDefault();
showLoginForm();
});
}- Main Page์ ๋๋ค. Login Page์์ ๋ก๊ทธ์ธ ์ฑ๊ณต์น ์ต์ด๋ก ๋ณด์ฌ์ง๋ ํ์ด์ง ์ ๋๋ค.
- ํ์๊ฐ์ ์ ์ ๋ ฅํ ์ ํธ ์นดํ ๊ณ ๋ฆฌ์ ๋ง๋ ์ต์ ๊ธ/์ธ๊ธฐ๊ธ/์ธ๊ธฐ์ ์ ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- ์ ํธ ์นดํ ๊ณ ๋ฆฌ ์ธ ๊ธ์ ๋ณด๊ธฐ ์ํด ์ ํธ ์นดํ ๊ณ ๋ฆฌ ์ธ ์นดํ ๊ณ ๋ฆฌ ํฌ์คํธ ๋ฆฌ์คํธ๋ก ์ด๋ํ๋ ๋ฒํผ์ด ์กด์ฌํฉ๋๋ค.
- ๋ฒํผ ์ธ์๋ ํ๋จ์ ์ ํธ ์นดํ ๊ณ ๋ฆฌ ์ธ ๊ฐ ์นดํ ๊ณ ๋ฆฌ๋ค์ ์ธ๊ธฐ๊ธ์ ์ถ๋ ฅํฉ๋๋ค.
- ๋ฐ์ํ์ผ๋ก ๋์์ธ ๋์ด ์ผ๊ด๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ์ข์ธก ์ฌ์ด๋๋ฐ๋ฅผ ํตํด ํ์ด์ง ์ด๋ ๋ฐ ํ ๋ง ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค. ํ ๋ง ๋ณ๊ฒฝ์ ์ฆ์ ์ ์ฉ๋์ด ํ์ด์ง ์ด๋ ๋ฐ ์ฌ์ ์ ์์๋ ํด๋น ์ค์ ์ด ์ ์ง๋ฉ๋๋ค.
- Workspace์ ๋๋ค. ์บ๋ฆฐ๋๋ฅผ ํตํ ์ผ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ ํ๋จ ๋ธ๋ญ์ ํตํด ํฌ์คํธ ์ ์ฅ/ ๋ฉ์์ง ๊ด๋ฆฌ/ ํต๊ณ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์บ๋ฆฐ๋์ ์ผ์ ์ ์์์ ํตํด ์ปค์คํ ํ์ฌ ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
- ํ๋จ ๋ธ๋ญ์ ๊ธฐ๋ณธ ๋ธ๋ญ 3๊ฐ( ๋ด๊ฐ ์์ฑํ ๊ธ, ์ข์์ํ ๊ธ, ์์ฝ์ ๋ฉ์์ง), ์ถ๊ฐ๋ธ๋ญ ์ต๋ 5๊ฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ธฐ๋ณธ๋ธ๋ญ์ ์ ์ธํ ์ถ๊ฐ๋ธ๋ญ์ ์์๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ปค์คํ ํ ์ ์์ต๋๋ค.
- ๊ฐ ๋ธ๋ญ์ ๋ฐ์ดํฐ๋ ๊ฐ๋ณ ์๋ก๊ณ ์นจ ๋ฒํผ์ผ๋ก ์ต์ ํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ๋ฐ์ํ์ผ๋ก ๋์์ธ ๋์ด ์ผ๊ด๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- **Mypage(Userpage)**์ ๋๋ค. ๋ด๊ฐ ์ฌ๋ฆฐ ํฌ์คํธ์ ๋ฉ์์ง ์์นํํฐ๋ฑ์ ์ง์ ์ ์ค ํ๋์ ๋๋ค.
- ๋ณธ์ธ์ ํ์ด์ง์์๋ ์ค์ ๋ฒํผ์ด ํ์ฑํ ๋๋ฉฐ, ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ/ ํ๋กํ ์ด๋ฏธ์ง ๋ณ๊ฒฝ/ ํ์ํํด๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์ฐ์ธกํ๋จ + ๋ฒํผ์ ํตํ์ฌ ํ์ด์ง๋ฅผ ์์ฑํ๊ณ ํด๋น ํ์ด์ง์ ์ ๊ธ์ ํฌ์คํ ํ ์ ์์ต๋๋ค.
- ๋ฐ์ํ์ผ๋ก ๋์์ธ ๋์ด ์ผ๊ด๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- Writeํผ(ํ์ด์ง)์ ๋๋ค. ์์ ์ ํ์ด์ง์์ ์๊ธ์ฐ๊ธฐ๋ฅผ ๋๋ฌ ์ง์ ํฉ๋๋ค.
- Summer Note๋ฅผ ์ด์ฉํ์ฌ ๊ธ์ฐ๊ธฐ ํผ์ ๊ตฌํํ๊ณ , ์ค์ ํ์ด์ง ์์ ์ง์ ์ ๋ ๋๋์ ์ฃผ๊ธฐ์ํด ํผ์ ๋์์ธํ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ธ ์์ฑ๊ณผ ๋์์ postView ํ์ด์ง์์ ๋ณด์ฌ์ง ํํ๋ฅผ ํ๋ฆฌ๋ทฐ ํ ์ ์์ต๋๋ค.
- ๊ธ ์์ ์ด๋ฏธ์ง ์ฝ์ ์ด ๊ฐ๋ฅํ๋ฉฐ ์ฌ์ด์ฆ ์กฐ์ ์ด ๊ฐ๋ฅํฉ๋๋ค. png์ด๋ฏธ์ง๋ฅผ ์ง์ํ์ฌ ํฌ๋ช ๋ฐฐ๊ฒฝ์ ์ด๋ฏธ์ง ๋ํ ์ฝ์ ๊ฐ๋ฅํฉ๋๋ค.
- ํ๋จ ์ต์ ์ ํ์ ์ ๋ ฅํญ๋ชฉ์ ๋๋ค. **Mypage(Userpage)**์์ ์ถ๋ ฅํ ์ธ๋ค์ผ ์ด๋ฏธ์ง ๋ฐ ํฌ์คํธ์ ๋ถ๋ฅ๋ฅผ ์ํ ์ต์ ์ ํ์ ํด์ผํฉ๋๋ค.
- ๋ฐ์ํ์ผ๋ก ๋์์ธ ๋์ด ์ผ๊ด๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.











