language 41

[모바일프로그래밍] 01. 뷰와 기본 위젯

안드로이드 앱 화면에 보이는 버튼, 글자, 입력창은 모두 같은 뿌리에서 나온다. 바로 View라는 클래스다. 오늘은 안드로이드 UI의 근간인 뷰와 뷰그룹의 개념, 자주 쓰는 기본 위젯, 그리고 위젯의 공통 속성을 정리했다.1. 뷰(View)와 뷰그룹(ViewGroup)화면의 모든 것은 View다안드로이드 화면을 이루는 모든 요소는 View 클래스를 상속받는다. 이렇게 화면에 배치되는 UI 요소를 통틀어 위젯(widget)이라 부른다.View: 버튼·텍스트처럼 실제로 보이는 화면 요소ViewGroup: 다른 위젯을 담는 그릇 역할의 위젯. 레이아웃이 여기에 속한다. 화면에서 보이는 버튼은 "버튼 위젯"이고, 코드에서는 Button 클래스의 객체다. 화면의 요소와 코드의 객체가 일대일로 대응한다고 보면 된다..

[Blazor Web App] 03. 로그인 폼 리팩토링 1 - LoginRequest 모델로 입력값 묶기

지난번에는 Blazor로 간단한 로그인 폼을 만들었다.아이디 입력창, 비밀번호 입력창, 로그인 버튼을 만들고 @bind, @onclick을 이용해서 입력값을 C# 변수와 연결했다.처음에는 Home.razor 안에 아이디와 비밀번호 변수를 따로 두었다.private string userId = "";private string password = "";그리고 로그인 버튼을 누르면 Login() 함수에서 직접 입력값을 검사했다.private void Login(){ if (string.IsNullOrWhiteSpace(userId)) { loginMessage = "아이디를 입력하세요."; messageClass = "login-message error-message"; ..

language/blazor 2026.07.10

[C언어] 02. 기본 변수와 입력

프로그램은 결국 데이터를 다루는 일이고, 그 데이터를 담는 그릇이 변수다. 오늘은 변수가 무엇이고 어떻게 선언·저장·출력하는지, 그리고 사용자에게서 값을 입력받는 scanf까지 정리했다.1. 변수와 자료형변수란?프로그램이 사용하는 데이터를 일시적으로 저장하기 위한 메모리 공간이다. 변수에는 값, 이름, 자료형(크기), 주소가 따라붙는다.C에서 변수는 쓰기 전에 반드시 자료형과 함께 선언해야 한다. 선언은 "이런 타입의 변수를 쓰겠다"고 컴파일러에 미리 알리는 일이고, 컴파일러는 이를 보고 알맞은 크기의 메모리를 확보한다.대표적인 자료형은 정수형 int, 실수형 double, 문자형 char 등이다. (참고로 C에는 원래 논리형 bool이 따로 없어, 정수 0/1로 참거짓을 표현했다.) 변수 이름(식별자)..

language/c 2026.07.10

[C#] 01. C#과 닷넷 생태계, 첫 프로그램

C#은 C, C++ 같은 컴파일 언어의 성능과 자바스크립트, 파이썬, PHP 같은 인터프리터 언어의 편의를 함께 노린 언어다. 자바와 비슷한 위치에 있는 하이브리드 언어라고 보면 된다.그런데 C#을 제대로 이해하려면 언어 문법 이전에 그 언어가 올라타 있는 닷넷(.NET)이라는 플랫폼을 먼저 봐야 한다. 이 글에서는 C#이 어떤 언어인지, 닷넷 생태계가 어떻게 구성되는지, 그리고 첫 프로그램을 어떻게 쓰는지를 정리한다.1. C#이라는 언어C#은 마이크로소프트가 만든 객체 지향 프로그래밍 언어이자, 마이크로소프트의 닷넷 플랫폼을 기반으로 도는 여러 언어 중 하나다. 특징을 먼저 훑어보면 이렇다.절차적 스타일, 객체 지향 스타일, 함수형 스타일을 모두 지원하는 다중 패러다임 언어전역 함수나 전역 변수가 없고..

language/c# 2026.07.08

[Blazor Web App] 02. 첫 로그인 폼 만들기 - @bind, @onclick, 입력 검증, CSS 분리, 모델 바인딩까지

오늘 작업 목표이번에는 Blazor 기본 페이지인 Home.razor를 직접 수정하면서 간단한 로그인 폼을 만들었다.실제 로그인 기능을 완성한 것은 아니다. 아직 DB도 붙이지 않았고, 서버 인증도 하지 않았다. 오늘 한 작업은 로그인 화면에서 가장 앞단에 해당하는 부분이다.아이디 입력↓비밀번호 입력↓로그인 버튼 클릭↓입력값 검증↓성공 / 오류 메시지 출력↓입력값을 LoginRequest 클래스로 묶기 처음에는 그냥 변수 두 개를 만들고 입력값을 받으면 된다고 생각했다. 그런데 조금만 진행해도 아이디, 비밀번호, 메시지, CSS class 같은 값들이 한 파일에 계속 늘어났다.그래서 이번 글에서는 아주 작은 로그인 폼을 만들면서도, 나중에 실제 로그인 처리로 확장하기 좋게 입력값을 클래스로 묶는 데까지 ..

language/blazor 2026.07.07

[Blazor Web App] 01. 시작하기 - 프로젝트 생성부터 첫 화면이 출력되는 과정 이해하기

오늘 작업 목표오늘은 Blazor로 웹 프로젝트를 처음 만들면서, 프로젝트가 실행되고 첫 화면이 브라우저에 출력되기까지의 흐름을 정리했다.아직 로그인, 데이터베이스, 외부 API, Android WebView 연결까지 들어가지는 않았다.이번 글의 목표는 딱 여기까지다. 처음에는 단순히 "웹 프로젝트 하나 만들면 되겠지"라고 생각했는데, 막상 Blazor 프로젝트를 만들려고 보니 선택지가 생각보다 많았다.특히 아래 용어들이 처음부터 헷갈렸다.Blazor Web AppBlazor ServerBlazor WebAssemblyInteractive Server대화형 위치 - Global 이 부분을 모른 채로 넘어가면 나중에 프로젝트 구조를 이해하기 힘들 것 같아서, 이번에는 코드 작성보다 실행 흐름을 먼저 잡는 ..

language/blazor 2026.07.05

[자바프로그래밍] 01. 자바 특징과 역사

자바는 "한 번 작성하면 어디서든 돌아가는" 언어로 유명하다. 이 한마디에 자바를 이해하는 거의 모든 것이 담겨 있다. 이 글에서는 자바가 왜 그렇게 설계됐는지, 그 핵심인 JVM과 바이트코드가 무엇인지, 그리고 자바를 특징짓는 성질들을 정리한다.1. 자바의 탄생 배경자바의 역사1991년 썬 마이크로시스템즈의 제임스 고슬링이 주도한 Green Project에서 시작됐고(초기 이름 OAK), 1995년 Java로 발표되어 인터넷 시대와 함께 대중화됐다. 2009년 오라클이 썬을 인수해 지금에 이른다.자바가 풀려던 핵심 문제는 플랫폼 호환성이었다. 기존 언어는 OS나 하드웨어가 다르면 소스를 다시 컴파일하거나 고쳐야 했다. 윈도우용으로 짠 프로그램이 맥에서 안 도는 것이다.2. 플랫폼 독립성: WORA와 J..

language/java 2026.07.01

[인터넷활용] 01. HTML 기초와 주요 태그

웹 페이지는 결국 브라우저가 읽어 화면으로 그려내는 문서다. 그 문서의 뼈대를 기술하는 언어가 HTML이다. 이 글에서는 HTML 문서의 기본 구조, 자주 쓰는 태그, 그리고 사용자 입력을 받는 폼(Form)까지 정리한다.1. HTML 문서의 기본 구조HTML은 태그로 내용을 감싸 의미와 구조를 부여하는 마크업 언어다. 모든 문서는 다음 골격에서 출발한다. 크게 두 영역으로 나뉜다.: 문서의 메타 정보. 문자셋, 제목, 스타일·스크립트 연결 등 화면에는 보이지 않지만 문서를 설명하는 정보가 들어간다.: 실제로 브라우저 화면에 표시되는 내용. DOCTYPE와 charset은 왜 쓸까은 "이 문서를 HTML5 표준 모드로 해석하라"고 브라우저에 알리는 선언이다. 은 문자 인코딩을 지정해 한글이 깨지지..

language/html 2026.06.30

[C++] 01. C++ 기초와 입출력

C++은 C언어 위에 객체 지향이라는 새로운 패러다임을 얹은 언어다. C로 짠 코드를 거의 그대로 쓸 수 있을 만큼 C와의 호환을 목표로 설계됐지만, 거기에 클래스와 객체 개념을 더해 더 큰 프로그램을 체계적으로 다룰 수 있게 했다.이 글에서는 C++의 첫 프로그램과 입출력 방식(cin/cout)을 보며, C와 무엇이 같고 무엇이 달라졌는지를 짚는다.1. C++ 개요와 첫 프로그램#include // 입출력 헤더using namespace std; // std 네임스페이스 사용int main() { cout C의 #include , printf 자리에 #include , cout이 들어온 게 한눈에 보인다. main 함수 구조는 C와 같다. 네임스페이스(namespace)이름 충..

language/c++ 2026.06.29

[C언어] 01. 첫 프로젝트

모든 프로그래밍 언어 학습은 화면에 "Hello World"를 띄우는 것에서 시작한다. 단순해 보이는 이 한 줄짜리 프로그램에도 사실 C언어의 기본 골격이 모두 담겨 있다.이 글에서는 첫 프로그램을 작성해보고, 그 안에 들어 있는 구성요소(헤더, main 함수, 전처리기, 주석)가 각각 무슨 역할을 하는지 하나씩 짚어본다.1. 첫 프로그램: Hello World#include int main(void){ printf("Hello World! \n"); printf("Kim ChulSoo \n"); return 0;}실행하면 다음과 같이 출력된다.Hello World!Kim ChulSooprintf 끝의 \n은 줄바꿈 문자다. 화면에서 커서를 다음 줄로 옮겨, 두 문장이 각각 다른 줄에 출..

language/c 2026.06.28