🔐 로그인/회원가입 시스템 만들기
모바일 앱에서 로그인과 회원가입은 거의 모든 서비스의 기본 기능입니다.
저는 Firebase Authentication을 사용해 빠르고 안정적인 로그인 시스템을 구현했습니다.
Firebase는 구글에서 제공하는 백엔드 서비스로, 복잡한 서버 없이도 사용자 인증을 구현할 수 있어 매우 유용합니다.

✅ 사용 기술
-
Android Studio
-
Java
-
Firebase Authentication
-
Email/Password 방식
✍️ 구현 과정 요약
-
Firebase 프로젝트 생성 및 앱 연결
-
Firebase Authentication에서 이메일/비밀번호 로그인 활성화
-
Android 앱에서 사용자 입력을 받아 회원가입 또는 로그인 처리
📄 레이아웃 (XML)
<!-- activity_main.xml -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="24dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/email"
android:hint="이메일"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/password"
android:hint="비밀번호"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnRegister"
android:text="회원가입"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnLogin"
android:text="로그인"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
📱 Java 코드
// MainActivity.java
import android.os.Bundle;
import android.widget.*;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.auth.*;
public class MainActivity extends AppCompatActivity {
private EditText email, password;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
email = findViewById(R.id.email);
password = findViewById(R.id.password);
Button btnRegister = findViewById(R.id.btnRegister);
Button btnLogin = findViewById(R.id.btnLogin);
btnRegister.setOnClickListener(v -> registerUser());
btnLogin.setOnClickListener(v -> loginUser());
}
private void registerUser() {
String emailInput = email.getText().toString().trim();
String passwordInput = password.getText().toString().trim();
mAuth.createUserWithEmailAndPassword(emailInput, passwordInput)
.addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
Toast.makeText(this, "회원가입 성공", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "회원가입 실패: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
private void loginUser() {
String emailInput = email.getText().toString().trim();
String passwordInput = password.getText().toString().trim();
mAuth.signInWithEmailAndPassword(emailInput, passwordInput)
.addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
Toast.makeText(this, "로그인 성공", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "로그인 실패: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
🛠️ 마무리 팁
-
비밀번호 최소 길이, 이메일 형식 체크 등의 유효성 검사를 추가하는 것이 좋습니다.
-
로그인 성공 후에는
Intent
를 통해 메인 화면으로 이동하도록 구성하세요. -
Firebase 콘솔에서 인증된 사용자 확인도 가능합니다.